Sdílet prostřednictvím


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:

  1. 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>
    
  2. 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>
    
  3. Zadáním následujícího příkazu na příkazovém řádku:

    msbuild projectA.proj /t:go /toolsversion:3.5
    
  4. 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:

  1. ToolsVersion Atribut Úloha MSBuild, který je použit k vytvoření projektu, pokud existuje.

  2. /toolsversion (Nebo /tv) přepínač, který je použitý v příkazu msbuild.exe, pokud existuje.

  3. ToolsVersion Atribut projektu elementu v souboru projektu.

  4. Výchozí verze nástroje v souboru MSBuild.exe.config.

  5. 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ů

Další zdroje

Přehled Multitargeting MSBuild

Nástroj MSBuild koncepty