Ich habe das neulich in einer Projektdatei gesehen:
<ProjectReference Include="Foo\Bar\Baz.csproj">
<Project>{A GUID HERE}</Project>
<Name>Baz</Name>
<Private>False</Private> <!-- ??? -->
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
</ProjectReference>
Jeder Knoten in a ProjectReference
scheint selbsterklärend zu sein (die referenzierte Projektdatei, die GUID, der Name, der im Lösungs-Explorer angezeigt werden soll, und ob das aktuelle Projekt mit dem referenzierten Projekt verknüpft werden soll oder nicht), außer Private
und die Seite " Allgemeine MSBuild-Projektelemente " nicht. t diesen Wert dokumentieren. (Es gibt eine Private
Einstellung für dokumentiert und Reference
nicht ProjectReference
- aber es hat Never
, Always
und PreserveNewest
Einstellungen, nicht wahr und falsch)
Was macht diese Einstellung?
visual-studio
msbuild
Billy ONeal
quelle
quelle
ProjectReference
Element (zumindest) von der C # - und C ++ - MSBuild-unterstützenden Infrastruktur erkannt. es sieht so aus, als würde es hauptsächlich in derMicrosoft.Common.CurrentVersion.targets
Datei behandelt.Antworten:
Das
Private
Tag behält die Benutzerüberschreibung für das Kontrollkästchen "Lokal kopieren" im Ordner "Visual Studio-Referenzen" bei. Hiermit wird gesteuert, ob die Referenz vom GAC verwendet wird oder ob die referenzierte Assembly in das Build-Verzeichnis kopiert wird.Ich kann zwar keine MSDN-Dokumentation zu diesem Zweck finden (quelle überraschend), aber dies geht aus dem Verhalten und dem Kommentar hervor, inMicrosoft.Common.CurrentVersion.targets:1742
dem sie angewendet wird:Dies ist in MSDN> Allgemeine MSBuild-Projektelemente dokumentiert und geht aus dem Verhalten und dem Kommentar hervor, in
Microsoft.Common.CurrentVersion.targets:1742
dem es angewendet wird:quelle
<Private>
fehlt, ist es nicht gleichbedeutend mitTrue
. Suchen Sie nach "MSBuild CopyLocal Bug". Siehe zum Beispiel stackoverflow.com/questions/1132243msbuild\Reference.cs:949
<Private>
gesetzt wirdTrue
, MSBuild noch nicht die Referenz in der Ausgabe nicht enthalten , wenn sie nicht von der Anwendung verwendet? Dies ist das aktuelle Verhalten, das ich vor Ort bekomme ...