Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Atribut ToolsVersion elementu Project v sadě Visual Studio a souborech projektu MSBuild je považován za zastaralý v sadě Visual Studio 2019 a novější; můžete jej bezpečně odstranit. Tento článek popisuje jeho použití ve starších verzích nástroje MSBuild nebo pro vlastní sady nástrojů. Viz standardní a vlastní konfigurace sady nástrojů.
Sadu nástrojů pro projekty a řešení můžete změnit jedním ze tří způsobů:
-ToolsVersionPomocí přepínače (nebo-tvzkratky ) při sestavování projektu nebo řešení z příkazového řádku.Nastavením parametru
ToolsVersionpro úlohu MSBuild.$(ProjectToolsVersion)Nastavením vlastnosti projektu v rámci řešení. Díky tomu můžete vytvořit projekt v řešení s verzí Sady nástrojů, která se liší od ostatních projektů.
Přepsání nastavení ToolsVersion projektů a řešení v sestaveních příkazového řádku
Přestože projekty sady Visual Studio obvykle sestavují pomocí nástroje ToolsVersion zadané v souboru projektu, můžete pomocí -ToolsVersion přepínače (nebo -tv) na příkazovém řádku tuto hodnotu přepsat a sestavit všechny projekty a jejich závislosti mezi projekty s jinou sadou nástrojů. Příklad:
msbuild.exe someproj.proj -tv:12.0 -p:Configuration=Debug
V tomto příkladu jsou všechny projekty sestaveny pomocí ToolsVersion 12.0. (Viz část Pořadí priorit dále v tomto tématu.)
Při použití -tv přepínače na příkazovém řádku můžete volitelně použít $(ProjectToolsVersion) vlastnost v jednotlivých projektech k jejich sestavení s jinou hodnotou ToolsVersion než ostatní projekty v řešení.
Přepsání nastavení ToolsVersion pomocí parametru ToolsVersion úlohy MSBuild
Úloha MSBuild je primárním prostředkem pro sestavení jednoho projektu. Chcete-li povolit msBuild úkol sestavit projekt s jiným ToolsVersion než ten zadaný v projektu, poskytuje volitelný parametr úkolu s názvem ToolsVersion. Následující příklad ukazuje použití tohoto parametru:
Vytvořte soubor s názvem projectA.proj a obsahující následující kód:
<Project> <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 další soubor s názvem projectB.proj a obsahující následující kód:
<Project> <Target Name="go"> <Message Text="projectB.proj" /> <Message Text="MSBuildToolsVersion: $(MSBuildToolsVersion)" /> <Message Text="MSBuildToolsPath: $(MSBuildToolsPath)" /> </Target> </Project>Na příkazovém řádku zadejte následující příkaz:
msbuild projectA.proj -t:go -toolsversion:3.5Zobrazí se následující výstup. Nastavení
projectAna příkazovém řádku přepíšeToolsVersion=12.0nastavení ve značceProject.-toolsversion:3.5ProjectBje volána úkolem vprojectA. Tento úkol máToolsVersion=2.0, který přepíše ostatníToolsVersionnastavení proprojectB.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í priorit
Pořadí priorit od nejvyššího po nejnižší, které slouží k určení ToolsVersion :
Atribut
ToolsVersionúlohy MSBuild použité k sestavení projektu, pokud existuje.Přepínač
-toolsversion(nebo-tv) použitý v příkazu msbuild.exe, pokud existuje.Pokud je proměnná
MSBUILDTREATALLTOOLSVERSIONSASCURRENTprostředí nastavená, použijte aktuálníToolsVersion.Pokud je proměnná
MSBUILDTREATHIGHERTOOLSVERSIONASCURRENTprostředí nastavená a definovanáToolsVersionv souboru projektu je větší než aktuálníToolsVersion, použijte aktuálníToolsVersion.Pokud je proměnná
MSBUILDLEGACYDEFAULTTOOLSVERSIONprostředí nastavená nebo pokudToolsVersionnení nastavená, použijí se následující kroky:Atribut
ToolsVersionelementu Project souboru projektu. Pokud tento atribut neexistuje, předpokládá se, že se jedná o aktuální verzi.Výchozí verze nástrojů v souboru MSBuild.exe.config .
Výchozí verze nástrojů v registru. Další informace naleznete v tématu Standardní a vlastní konfigurace sady nástrojů.
Pokud proměnná
MSBUILDLEGACYDEFAULTTOOLSVERSIONprostředí není nastavená, použijí se následující kroky:Pokud je proměnná
MSBUILDDEFAULTTOOLSVERSIONprostředí nastavená naToolsVersionexistující, použijte ji.Pokud
DefaultOverrideToolsVersionje nastavena v MSBuild.exe.config, použijte ji.Pokud
DefaultOverrideToolsVersionje nastavená v registru, použijte ji.V opačném případě použijte aktuální
ToolsVersion.