Überschreiben von ToolsVersion-Einstellungen

Aktualisiert: November 2007

Indem Sie den /ToolsVersion-Schalter (abgekürzt /tv) oder die $(ProjectToolsVersion)-Eigenschaft verwenden, können Sie die ToolsVersion-Einstellung in der Projektdatei überschreiben, sodass Sie beispielsweise ein Projekt in einer Projektmappe mit einer anderen Toolsetversion als bei anderen Projekten erstellen können. Sie können ToolsVersion der MSBuild-Aufgabe auch mit dem ToolsVersion-Aufgabenparameter überschreiben.

Weitere Informationen zu ToolsVersion finden Sie unter Festlegen einer bestimmten .NET Framework-Version als Ziel mit MSBuild.

Überschreiben der ToolsVersion-Einstellungen von Projekten in Befehlszeilenbuilds

Obwohl Visual Studio 2008-Projekte normalerweise mit der in der Projektdatei angegebenen ToolsVersion erstellt werden, können Sie den /ToolsVersion (oder /tv)-Schalter in der Befehlszeile verwenden, um diesen Wert zu überschreiben, und so alle Projekte und deren projektübergreifende Abhängigkeiten mit einem anderen Toolset erstellen. Beispiel:

C:\windows\microsoft.net\framework\v3.5>msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug

In diesem Beispiel werden alle Projekte mit ToolsVersion 3.5 erstellt. (Siehe jedoch auch den Abschnitt "Rangfolge" weiter unten in diesem Thema.)

Bei Verwendung des /tv-Schalters in der Befehlszeile können Sie optional die $(ProjectToolsVersion)-Eigenschaft für einzelne Projekte verwenden, um diese mit einem anderen ToolsVersion-Wert als für andere Projekte in der Projektmappe zu erstellen.

Überschreiben der ToolsVersion-Einstellung mit dem ToolsVersion-Parameter der MSBuild-Aufgabe

Die MSBuild-Aufgabe dient einem Projekt primär dazu, ein anderes Projekt zu erstellen. Damit die MSBuild-Aufgabe ein Projekt mit einer anderen ToolsVersion als der im Projekt angegebenen erstellen kann, stellt sie einen optionalen Aufgabenparameter mit dem Namen ToolsVersion zur Verfügung. Nachfolgend ist ein Beispiel für dessen Verwendung aufgeführt:

<MSBuild Projects="MyProject1" 
         Targets="Build" 
         Properties="Configuration=Debug" 
         ToolsVersion="2.0">
    <Output TaskParameter="TargetOutputs" ItemName="Outputs" /> 
</MSBuild>

Rangfolge

Die Rangfolge zum Ermitteln der Toolsversion, die von einem Projekt zur Erstellung verwendet wird, lautet (ausgehend von der höchsten zur niedrigsten) wie folgt:

  1. Das ToolsVersion-Attribut in der MSBuild-Aufgabe, die zum Erstellen des Projekts verwendet wird (soweit zutreffend).

  2. Der /tv-Schalter für msbuild.exe (falls zutreffend). (Ähnlich der äußeren msbuild-Aufgabe.)

  3. Das ToolsVersion-Attribut der Projektdatei.

  4. Die standardmäßige Toolsversion in der Konfigurationsdatei.

  5. Die standardmäßige Toolsversion in der Registrierung.

Nummer 1, 2 und 3 sind das gleiche wie Eigenschaften:

  • Eigenschaftenattribute in der MSBuild-Aufgabe

  • /p: Schalter in msbuild.exe

  • Eigenschaftentag in der Projektdatei

Wenn Sie beim Erstellen in der Befehlszeile keinen Wert für /ToolsVersion festlegen, führen Visual Studio 2005-Projektmappen die Erstellung anhand einer Toolsversion mit dem Wert "2.0" und Visual Studio 2008-Projektmappen mit einer Toolsversion mit dem Wert "3.5" durch.

Siehe auch

Weitere Ressourcen

MSBuild-Grundlagen

Builderstellung für bestimmte .NET Framework-Versionen