Sdílet prostřednictvím


Sada nástrojů MSBuild (atribut ToolsVersion)

MSBuildpoužívá Toolset úkoly, cíle a nástroje pro sestavení aplikace.Obvykle MSBuild sada nástrojů zahrnuje soubor microsoft.common.tasks a soubor microsoft.common.targets například csc.exe a vbc.exe kompilátory.Většina modulové lze použít ke kompilaci aplikace na více než jednu verzi rozhraní.NET Framework a více než jedné platformy systému.Nicméně MSBuild 2.0 Toolset lze použít pouze na cílové 2.0 rozhraní.NET Framework.

Atribut ToolsVersion

Určit v sadě ToolsVersion na atribut projektu element v souboru projektu.Následující příklad určuje, že projekt má být vytvořen pomocí sady nástrojů 2.0 MSBuild.

<Project ToolsVersion="2.0" ... </Project>

Jak funguje atribut ToolsVersion

Při vytvoření projektu v aplikaci Visual Studio nebo inovovat existující projekt s názvem atributu ToolsVersion je automaticky zahrnuta do projektu soubor a jeho hodnota odpovídá verzi rozhraní.NET Framework, která je zahrnuta v edici Visual Studio.Další informace naleznete v tématu Zaměření na specifickou verzi rozhraní .NET Framework nebo profilu.

Když ToolsVersion hodnota je definována v souboru projektu, MSBuild tuto hodnotu používá k určení hodnoty vlastnosti sady nástrojů, které jsou k dispozici v projektu.Vlastnost jednu sadu nástrojů je $(MSBuildToolsPath), který určuje cestu nástroje rozhraní.NET Framework.Pouze vlastnosti sady nástrojů (nebo $(MSBuildBinPath)), je vyžadován.

V následujícím příkladu MSBuild, vyhledá pomocí souboru Microsoft.CSharp.targets MSBuildToolsPath vyhrazena vlastnost.

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

Můžete upravit hodnotu MSBuildToolsPath definováním vlastní sady nástrojů.Další informace naleznete v tématu Standardní a vlastní konfigurace sady nástrojů

Při vytváření řešení pomocí příkazového řádku a zadejte ToolsVersion pro msbuild.exe, všechny projekty a jejich závislosti typu projekt projekt jsou vytvořeny podle tohoto ToolsVersion, i když každý projekt v řešení určuje vlastní ToolsVersion.Definovat ToolsVersion na projektu na základě hodnoty naleznete v tématu Přepsání nastavení ToolsVersion.

ToolsVersion Atribut je použit také pro projekt migrace.Například pokud otevřete projekt Visual Studio 2008 v sadě Visual Studio 2010, soubor projektu je aktualizován zahrnout ToolsVersion = "4.0".Při otevření projektu v aplikaci Visual Studio 2008, nedokáže rozpoznat inovovaném ToolsVersion a proto vytvoří projekt jako kdyby atribut byl stále nastaven na hodnotu 3.5.

Visual Studio 2010 a Visual Studio 2012 pomocí ToolsVersion 4.0.V mnoha případech můžete otevřít projekt v obou verzích sady Visual Studio beze změny.

Sub modulové, které jsou popsány dále v tomto tématu, povolit automatické přepínání, která sada pomocí nástroje založené na kontextu, ve kterém je spuštěn sestavení nástroj MSBuild.Například nástroj MSBuild používá novější sadu nástrojů při spuštění v aplikaci Visual Studio 2012 než při spuštění v aplikaci Visual Studio 2010 bez nutnosti explicitně změnit soubor projektu.Další informace naleznete v tématu Jak: upravit systém projektu, aby projekty načíst více verzí sady Visual Studio.

Sada nástrojů implementace

Implementujte Toolset výběrem cesty různé nástroje, cíle a úkoly, které tvoří sadu nástrojů.Nástroje pro sadu nástrojů, která definuje MSBuild pocházet z následujících zdrojů:

  • Složka rozhraní.NET Framework.

  • Další nástroje spravované.

Spravované nástroje patří ResGen.exe a TlbImp.exe.

MSBuild poskytuje dva způsoby přístupu k sadu nástrojů:

Sada nástrojů Vlastnosti zadat cesty nástroje.MSBuild používá hodnotu ToolsVersion atribut v souboru projektu vyhledejte odpovídající klíč registru a použije informace v klíči registru nastavit vlastnosti sady nástrojů.Například pokud ToolsVersion má hodnotu 4.0, pak MSBuild nastaví vlastnosti sady nástrojů podle tohoto klíče registru: HKLM\Software\Microsoft\MSBuild\ToolsVersions\4.0.

Vlastnosti sady nástrojů jsou:

  • MSBuildToolsPathUrčuje cestu nástroje rozhraní.NET Framework.

  • SDK40ToolsPathUrčuje cestu k další spravované nástroje MSBuild 4.0.

  • SDK35ToolsPathUrčuje cestu další spravované nástroje MSBuild 3.5.

Alternativně můžete určit sadu nástrojů programově voláním metody ToolLocationHelper třídy.Třída zahrnuje tyto metody:

Bb383796.collapse_all(cs-cz,VS.110).gifModulové Sub

Jak je popsáno dříve v tomto tématu používá MSBuild klíč registru určit cestu základní nástroje.Pokud klíč obsahuje podklíč, použije jej MSBuild určit cestu sub nástrojů, který obsahuje další nástroje.Sadu nástrojů je definován v tomto případě kombinování definice vlastností, které jsou definovány v oba klíče.

[!POZNÁMKA]

Pokud názvy vlastností toolset kolidují, přepíše hodnota definovaná pro cestu podklíče hodnota definovaná cesta kořenové klíče.

Za přítomnosti aktivní Sub modulové VisualStudioVersion vlastnost sestavení.Tato vlastnost může mít jednu z těchto hodnot:

  • "10.0" Určuje 4 rozhraní.NET Framework sub-toolset

  • "11.0" Určuje sub-sada nástrojů rozhraní .NET Framework 4.5

Během sestavení, MSBuild automaticky určí a nastaví výchozí hodnotu VisualStudioVersion vlastnost, pokud již není definována.

MSBuild poskytuje přetížení ToolLocationHelper metod, které přidáte VisualStudioVersion jako parametr hodnota výčtu.Kromě toho poskytuje MSBuild cesty další nativní nástroje vrátit tyto nové metody:

  • GetPathToWindowsSdk

  • GetPathToWindowsSdkFile

Tyto nové metody berou také VisualStudioVersion hodnota výčtu jako parametr k určení, které toolset sub použití.VisualStudioVersion Výčtu může mít jednu z následujících hodnot:

  • VisualStudio10

  • VisualStudio11

  • VisualStudioLatest

Sub modulové byly zavedeny v 4.5 rozhraní .NET Framework.

Viz také

Koncepty

Standardní a vlastní konfigurace sady nástrojů

Další zdroje

Přehled Multitargeting MSBuild