Přepsání nastavení ToolsVersion
Můžete vybrat sadu nástrojů pro soubor projektu pomocí /ToolsVersion přepnout (nebo /tv, pro krátké) nebo nastavením $(ProjectToolsVersion) vlastnost.To umožňuje sestavení projektu v řešení s verzí sady nástrojů, která se liší od jiných projektů.Můžete také přepsat verzi nástroje používané Úloha MSBuild nastavením ToolsVersion úloh parametrů.
Přepsat nastavení ToolsVersion projektů na příkazovém řádku
Přestože ToolsVersion zadaný v souboru projektu obvykle sestavení projektů sady Visual Studio, můžete použít /ToolsVersion (nebo /tv) přepněte na příkazovém řádku přepsat tuto hodnotu a sestavit všechny projekty a jejich závislosti typu projekt projekt s jinou sadu nástrojů.Příklad:
msbuild.exe someproj.proj /tv:3.5 /p:Configuration=Debug
V tomto příkladu jsou všechny projekty sestaveny pomocí ToolsVersion 3.5.(Však naleznete v části "Pořadí priority" dále v tomto tématu.)
Při použití /tv přepínač příkazového řádku, můžete volitelně použít $(ProjectToolsVersion) vlastností v jednotlivých projektech k sestavení ToolsVersion jinou než ostatní projekty v řešení.
Přepsat nastavení ToolsVersion pomocí parametru ToolsVersion úlohy nástroje MSBuild
Úloha MSBuild je primární prostředek pro jeden projekt výstavby druhého.Chcete-li úloha MSBuild pro vytvoření projektu s jinou ToolsVersion, než který je zadán v projektu, poskytuje parametr volitelný úkol s názvem ToolsVersion.Následující příklad ukazuje způsob použití tohoto parametru:
Vytvořte soubor s názvem projectA.proj , který obsahuje následující kód:
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <Target Name="go" > <Message Text="projectA.proj" /> <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" /> <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)" /> <MSBuild Projects="projectB.proj" ToolsVersion="2.0" Targets="go" /> </Target> </Project>
Vytvořte soubor s názvem projectB.proj , který obsahuje následující kód:
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <Target Name="go"> <Message Text="projectB.proj" /> <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" /> <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)" /> </Target> </Project>
Zadáním následujícího příkazu na příkazovém řádku:
msbuild projectA.proj /t:go /toolsversion:3.5
Zobrazí se následující výstup.Pro projectA, /toolsversion:3.5 přepíše nastavení v příkazovém řádku ToolsVersion=4.0 nastavení Project značky.
ProjectBse nazývá úlohou v projectA.Tento úkol byl ToolsVersion=2.0, která přepíše druhou ToolsVersion nastavení pro projectB.
Output: projectA.proj MSBuildToolsVersion: 3.5 MSBuildToolsPath: C:\Windows\Microsoft.NET\Framework\v3.5 projectB.proj MSBuildToolsVersion: 2.0 MSBuildToolsPath: C:\Windows\Microsoft.NET\Framework\v2.0.50727
Pořadí přednosti
Pořadí podle priority od nejvyšší po nejnižší umožňuje určit, ToolsVersion používá k vytvoření projektu je:
ToolsVersion Atribut Úloha MSBuild, který je použit k vytvoření projektu, pokud existuje.
/toolsversion (Nebo /tv) přepínač, který je použitý v příkazu msbuild.exe, pokud existuje.
ToolsVersion Atribut projektu elementu v souboru projektu.
Výchozí verze nástroje v souboru MSBuild.exe.config.
Výchozí verze nástroje v registru.Další informace naleznete v tématu Standardní a vlastní konfigurace sady nástrojů.
Čísla 1, 2 a 3 jsou stejné jako vlastnosti:
Atribut vlastnosti Úloha MSBuild
Přepínač/p: na msbuild.exe
Vlastnost tag v souboru projektu
Viz také
Koncepty
Sada nástrojů MSBuild (atribut ToolsVersion)
Standardní a vlastní konfigurace sady nástrojů