2014-05-06 7 views
5

Es gibt eine Inkonsistenz in den Konfigurationswertwörtern zwischen dem Projektmappen-Explorer in VS.NET und dem projizierten Wert in der Datei .csproj. In Solution Explorer hat eine .config oder Abhängigkeitsdatei mehrere Optionen in der Eigenschaft Copy To Output Directory, die sich auf ihre Build- und Deploy-Eigenschaften auswirken.Warum ändert sich das Wort für die Auswahl "In Ausgabeverzeichnis kopieren" zwischen den Standorten?

In der Dropdown-Liste Copy To Output Directory habe ich die Option für eine .config-Datei ausgewählt: Copy if newer. Jedoch in der .csproj Datei wird eingestellt, wie PreserveNewest wie unten zu sehen:

<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 

Ich nehme an dem Schluß gemacht werden kann, dass da es (2) verschiedene Orte die Terminologie anders zu seinem Sinn macht. Ich konnte auch sehen, wo die 'Leerzeichen' in der Datei XML nicht erlaubt wären, aber dann könnte ich noch etwas wie das Folgende erwarten.

<CopyToOutputDirectory>CopyIfNewer</CopyToOutputDirectory> 

Gibt es irgendwo, dass dies in der MSDN und wie diese ‚freundlichen Namen‘ Karte ihren physischen konfigurierten Wert innerhalb der .csproj-Datei definiert ist?

Antwort

5

Ich denke, es gibt keinen solchen Ort, wo Sie die Zuordnung so finden können. Allerdings kann Automation and Extensibility Reference einige Dinge klären.

Zum Beispiel können Sie sehen, dass FileProperties2 Schnittstelle CopyToOutputDirectory Eigenschaft hat und dass die Eigenschaft akzeptiert __COPYTOOUTPUTSTATE Enumerationswerten:

  • COPYTOOUTPUTSTATE_Never = 0
  • COPYTOOUTPUTSTATE_Always = 1
  • COPYTOOUTPUTSTATE_PreserveNewestFile = 2

Hier können Sie sehen, dass PreserveNewest die einzige Option ist, die passt den Copy if newer UI-Wert.

Mein Punkt ist: Wenn Sie Zweifel über mögliche Optionen haben, können Sie es immer in der Automatisierungsreferenz überprüfen, aber ich persönlich benutze es nur schreiben NuGet Powershell-Skripte, die Msbuild-Dateien im Code ändert. Der einfachste Weg ist, den Wert in UI einzustellen und zu sehen, dass wir uns danach in der msbuild-Datei befinden.

Verwandte Themen