Udostępnij za pośrednictwem


Zestaw narzędzi MSBuild (ToolsVersion)

MSBuildużywa Toolset zadania, cele i narzędzia do budowania aplikacji.Zazwyczaj MSBuild zestaw narzędzi zawiera plik microsoft.common.tasks, plik microsoft.common.targets i kompilatory takie jak csc.exe i vbc.exe.Większość zestawów narzędzi może służyć do kompilowania aplikacji do więcej niż jedną wersję.NET Framework i więcej niż jedną platformę systemu.Jednakże MSBuild 2.0 zestaw narzędzi należy używać tylko do kierowania.NET Framework 2.0.

Atrybut ToolsVersion

Określ zestaw narzędzi w ToolsVersion atrybut na Projekt elementu w pliku projektu.W następującym przykładzie określono, że projekt powinien być budowany za pomocą MSBuild 2.0 Toolset.

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

Jak działa atrybutu ToolsVersion

Podczas tworzenia projektu w Visual Studio lub uaktualnienia istniejącego projektu, atrybut o nazwie ToolsVersion jest automatycznie uwzględniane w projekcie pliku i jego wartość odpowiada wersja.NET Framework, uwzględnioną w program Visual Studio.Aby uzyskać więcej informacji, zobacz Ukierunkowanie określonego.NET Framework w wersji lub profilu.

Gdy ToolsVersion wartość jest określona w pliku projektu, program MSBuild używa tej wartości do określenia wartości właściwości zestaw narzędzi, które są dostępne w projekcie.Jeden zestaw narzędzi znajduje się w $(MSBuildToolsPath), która określa ścieżkę narzędzia.NET Framework.Tylko właściwości zestaw narzędzi (lub $(MSBuildBinPath)), jest wymagany.

W poniższym przykładzie program MSBuild znajduje plik Microsoft.CSharp.targets za pomocą MSBuildToolsPath zastrzeżone właściwości.

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

Można zmodyfikować wartość MSBuildToolsPath , definiując niestandardowy zestaw narzędzi.Aby uzyskać więcej informacji, zobacz Konfiguracje standardowego i niestandardowego zestawu narzędzi.

Podczas budowania rozwiązania w wierszu polecenia i określić ToolsVersion msbuild.exe, wszystkie projekty i ich zależności projektu na są zbudowane zgodnie z tym ToolsVersion, nawet jeśli każdego projektu w roztworze określa własną ToolsVersion.Aby zdefiniować ToolsVersion wartość na podstawie projektu na, zobacz Zastępowanie ustawień ToolsVersion.

ToolsVersion Atrybut jest również używana do migracji projektu.Na przykład po otwarciu projektu programu Visual Studio 2008 w Visual Studio 2010, plik projektu zostanie zaktualizowany ToolsVersion = "4.0".Następnie podczas próby otwarcia projektu w Visual Studio 2008, nie rozpoznaje uaktualnionych ToolsVersion i dlatego buduje projekt tak, jakby jeszcze ustawiono atrybut 3.5.

Visual Studio 2010 i Visual Studio 2012 używać ToolsVersion 4.0.W wielu przypadkach można otworzyć projekt w obu wersjach programu Visual Studio, bez żadnych modyfikacji.

Sub procesami, które są opisane w dalszej części tego tematu, pozwalają MSBuild automatyczne przełączanie, który zestaw narzędzi do wykorzystania oparte na kontekst, w której jest uruchamiane kompilacji.Na przykład MSBuild używa nowszej zestaw narzędzi po uruchomieniu w Visual Studio 2012 niż gdy jest uruchamiany w Visual Studio 2010, bez konieczności jawnie zmiany pliku projektu.Aby uzyskać więcej informacji, zobacz Jak: modyfikowanie systemu projektu tak, aby załadować projektów, w wielu wersji programu Visual Studio.

Zestaw narzędzi wdrażania

Implementuje zestaw narzędzi, wybierając ścieżki różnych narzędzi, cele i zadania, które tworzą zestaw narzędzi.Narzędzia w zestaw narzędzi, który definiuje MSBuild pochodzą z następujących źródeł:

  • Folder.NET Framework.

  • Dodatkowe narzędzia zarządzanych.

Narzędzia zarządzanych obejmują ResGen.exe i TlbImp.exe.

Program MSBuild oferuje dwa sposoby dostępu zestaw narzędzi do:

Zestaw narzędzi właściwości określić ścieżki narzędzi.Program MSBuild używa wartości ToolsVersion atrybut w pliku projektu, aby zlokalizować odpowiedni klucz rejestru, a następnie używa informacji w kluczu rejestru ustawić właściwości zestaw narzędzi.Na przykład jeśli ToolsVersion ma wartość 4.0, a następnie MSBuild ustawia właściwości zestaw narzędzi według tego klucza rejestru: HKLM\Software\Microsoft\MSBuild\ToolsVersions\4.0.

Są to właściwości zestaw narzędzi:

  • MSBuildToolsPathOkreśla ścieżkę narzędzia.NET Framework.

  • SDK40ToolsPathOkreśla ścieżkę dodatkowe narzędzia zarządzanych 4.0 MSBuild.

  • SDK35ToolsPathOkreśla ścieżkę dodatkowe narzędzia zarządzanych dla MSBuild 3.5.

Alternatywnie można określić zestaw narzędzi programowo przez wywołanie metody ToolLocationHelper klasy.Klasa ta obejmuje następujące metody:

Bb383796.collapse_all(pl-pl,VS.110).gifSub-zestawy narzędzi

Jak opisano wcześniej w tym temacie, MSBuild korzysta z klucza rejestru ścieżkę podstawowe narzędzia.Jeśli ten klucz ma podklucz, MSBuild używa go do określenia ścieżki sub narzędzi, który zawiera dodatkowe narzędzia.W tym przypadku zestaw narzędzi jest zdefiniowany przez połączenie definicji właściwości, które są zdefiniowane w obu kluczach.

[!UWAGA]

Jeśli kolizji nazw właściwości zestaw narzędzi, wartość, która jest zdefiniowana dla ścieżka podklucza zastępuje wartość, która jest zdefiniowana dla ścieżki klucza głównego.

Zestawy narzędzi Sub stają się aktywne w obecności z VisualStudioVersion zbudować właściwość.Ta właściwość może mieć jedną z następujących wartości:

  • "10.0" Określa zestaw narzędzi sub 4.NET Framework

  • "11.0" Określa zestaw narzędzi sub.NET Framework 4.5

Podczas kompilacji, program MSBuild określa i automatycznie ustawia wartość domyślną dla VisualStudioVersion właściwość, jeśli jeszcze nie jest zdefiniowany.

Program MSBuild zapewnia przeciążenia dla ToolLocationHelper metod, które dodają VisualStudioVersion wyliczone wartości jako parametru.Ponadto program MSBuild zapewnia tych nowych metod, aby przywrócić ścieżki dodatkowe narzędzia macierzysty:

  • GetPathToWindowsSdk

  • GetPathToWindowsSdkFile

Te nowe metody także wziąć VisualStudioVersion wyliczone wartości jako parametru, aby określić, które toolset sub, aby użyć.VisualStudioVersion Wyliczenie może mieć jedną z następujących wartości:

  • VisualStudio10

  • VisualStudio11

  • VisualStudioLatest

Wprowadzono zestawów narzędzi Sub.NET Framework 4.5.

Zobacz też

Koncepcje

Konfiguracje standardowego i niestandardowego zestawu narzędzi

Inne zasoby

Omówienie aktualnie MSBuild