Ist "Copy Local" transitiv für Projektreferenzen?
Wrt. die vorgeschlagene täuschung: Da dies hier Queston schlägt das Gegenteil derlinked question, Ich würde lieber denken, dass es @ inich ein Betrüger.
Zuers, Ich habe gelesenWas ist die beste Vorgehensweise für "Lokal kopieren" und mit Projektreferenzen? (ebenfallsDie) und ich muss es trotzdem ausprobieren, aber allgemeines Feedback zu diesem Thema ist notwendig, da das docs auf diese Sachen sind schrecklich und ich bin nur auf VS2010 und vielleicht haben sie etwas in neueren Versionen geändert, das wird gut zu wissen sein.
Zweit, Ich interessiere mich nur fürProjek Verweis für diese Frage, wie ich @ haesen Sie, dass Assemblys aus dem GAC unterschiedlich behandelt werde und das GAC ist für mein Problem irrelevant.
Dritt, nach dem Lesen der vorgeschlagenen Dupe, aber noch schönerAntworte hier von @Albireo, es scheint auch, dass es wichtig ist, @ zu unterscheidDate Abhängigkeiten, wobei die Abhängigkeit auf eine DLL-Assembly-Datei verweist undProjek Abhängigkeiten (d. h. nach was ich frage), wobei die Abhängigkeit auf ein @ verweiProjek und implizit die Ausgabedatei dieses Projekts.
Anyway, hier ist die Situation, etwas eigenartig, denke ich, aber immer noch: 2 C # -ausführbare Projekten C # dll MontageprojekteDie beiden ausführbaren Dateien haben unterschiedliche Ausgabeverzeichnisse, da sie separat bereitgestellt werden und auf diese Weise auch auf dem Entwicklercomputer separat sind.Die beiden ausführbaren Dateien hängen von einigen DLL-Assemblys ab (die möglicherweise voneinander abhängen).Es gibt drei Ausgabeverzeichnisse:/x1
für ausführbares 1 Projekt/x2
für ausführbares 2 Projekt/lib
für alle DLL-Assemblys Die DLL-Assemblysall habenCopy Local
einstellenfalse
für ihre Projektreferenzen, da sie alle im selben Ausgabeverzeichnis erstellen.
Die 2ausführbare Projekte festgelegt habenCopy Local
zutrue
für alle DLL-Assembly-Projektverweise, auf die sie direkt verweisen, sodass die DLLs in @ kopiert werd/x1
/x2
beziehungsweise
Die Frag jetzt ist wrt. zu DLLs, die @ sinich direkt von einem ausführbaren Projekt referenziert, abernu transitiv durch eine referenzierte Assembly:Will Assemblys, die @ sinu Transitiv durch eine andere Assembly referenziert, in den Ausgabeordner kopiert werden der ausführbaren Datei, wenn "Copy Local" ist Bei der ersten Assembly auf true setzen?
Beispiel
x1.csproj
(z.B. Ausgabe =x1/one.exe
)Referenz:dlA.csproj
(z. B. Ausgabe =lib/a.dll
) mitCopy Local = *true*
(kein direkter Verweis auf b.dll)dlA.csproj
(z. B. Ausgabe =lib/a.dll
)Referenz:dlB.csproj
(z. B. Ausgabe =lib/b.dll
) mitCopy Local = **false**
(kein direkter Verweis auf c.dll)dlC.csproj
(z. B. Ausgabe =lib/c.dll
) (keine weiteren relevanten Referenzen)Thus, wir haben eine logische Abhängigkeit vonone.exe -> a.dll -> b.dll -> c.dll
, wo nura.dll
mit offensichtlich in das Ausgabeverzeichnis von @ kopiert werdone.exe
. erden die beiden anderen DLLs auch in das Ausgabeverzeichnis kopier Ist das irgendwo dokumentiert?
nd ja, ich habe es versucht. Und ja, es scheint zur Arbeit, aber ich habe es noch nicht hart genug gestoßen und trotzdem gibt es vielleicht noch etwas mehr, das ich möglicherweise verpasst habe. (Und es gibt auch die Frage nach offiziellen Dokumenten.)