Udostępnij za pośrednictwem


Zestaw narzędzi MSBuild (ToolsVersion)

MSBuild korzysta z użyciem zestawu narzędzi zadań, celów i narzędzia do tworzenia aplikacji.Zazwyczaj zestawu narzędzi MSBuild zawiera plik microsoft.common.tasks, plik microsoft.common.targets i kompilatorów, takich jak csc.exe i vbc.exe.Większość procesami może służyć do kompilowania aplikacji do więcej niż jednej wersji programu .NET Framework i więcej niż jedną platformę systemu.Zestaw narzędzi 2.0 MSBuild można jednak obsługujących tylko programu .NET Framework 2.0.

Atrybut ToolsVersion

Określ zestawu narzędzi w ToolsVersion atrybutu na projektu w pliku projektu.W poniższym przykładzie określono, że projekt powinien zostać utworzony przy użyciu zestawu narzędzi 12.0 MSBuild.

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

Jak działa ten atrybut ToolsVersion

Podczas tworzenia projektu w programie Visual Studio lub uaktualnić istniejący projekt atrybut o nazwie ToolsVersion jest automatycznie zawarte w projekcie plików i jej wartość odpowiada wersję programu MSBuild, który znajduje się w wersji programu Visual Studio.Aby uzyskać więcej informacji, zobacz Przeznaczanie dla określonej wersji platformy .NET lub profilu.

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

Uruchamianie w programie Visual Studio 2013, wersja zestawu narzędzi MSBuild jest taki sam jak numer wersji programu Visual Studio.Domyślnie MSBuild tego zestawu narzędzi w programie Visual Studio i w wierszu polecenia, niezależnie od wersji zestawu narzędzi określone w pliku projektu.To zachowanie można przesłonić przy użyciu flagi /ToolsVersion.Aby uzyskać więcej informacji, zobacz zastępowanie ustawień ToolsVersion.

W poniższym przykładzie MSBuild znajduje przy użyciu pliku Microsoft.CSharp.targets MSBuildToolsPath zarezerwowana właściwości.

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

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

Podczas tworzenia rozwiązania w wierszu polecenia i określ ToolsVersion msbuild.exe, wszystkich projektów i ich zależności projektu do projektu są tworzone zgodnie z tym ToolsVersion, nawet jeśli każdy projekt w rozwiązaniu określa własne ToolsVersion.Aby zdefiniować ToolsVersion wartość na zasadzie na projekt, zobacz Zastępowanie ustawień ToolsVersion.

ToolsVersion Atrybut służy do migracji projektu.Na przykład jeśli projekt programu Visual Studio 2008 jest otwarty w programie Visual Studio 2010, plik projektu jest aktualizowana do włączenia ToolsVersion = "4.0".Jeśli zostanie podjęta próba otwarcia projektu w programie Visual Studio 2008, nie rozpoznaje uaktualnioną ToolsVersion i dlatego tworzy projekt tak, jakby atrybut nadal została ustawiona w 3.5.

Program Visual Studio 2010 i Visual Studio 2012 należy użyć ToolsVersion 4.0.Program Visual Studio 2013 używa ToolsVersion 12.0.W wielu przypadkach możesz otworzyć projektu we wszystkich trzech wersjach programu Visual Studio bez modyfikacji.Prawidłowego zestawu narzędzi zawsze korzysta z programu Visual Studio, ale użytkownik zostanie powiadomiony, jeśli używana wersja nie jest zgodna z wersją w pliku projektu.W większości przypadków to ostrzeżenie jest niegroźne procesami są zgodne w większości przypadków.

Zezwalaj na Sub procesami, które są opisane w dalszej części tego tematu, MSBuild przełączanie który zestaw narzędzi do użycia na podstawie kontekstu, w którym jest wykonywany kompilacji.Na przykład MSBuild używa nowszej zestaw narzędzi po uruchomieniu programu Visual Studio 2012 niż gdy jest uruchamiana w programie Visual Studio 2010, bez konieczności jawnego 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 implementacji

Implementuje zestaw narzędzi od wybrania poniżej ścieżki różnych narzędzi, celów i zadania wchodzące w skład zestawu narzędzi.Narzędzia zestawu narzędzi, która definiuje MSBuild pochodzą z następujących źródeł:

  • Folder programu .NET Framework.

  • Dodatkowe narzędzia zarządzane.

Zarządzane narzędzi należą: ResGen.exe i TlbImp.exe.

MSBuild zapewnia dostęp do narzędzi na dwa sposoby:

Zestaw narzędzi właściwości określić ścieżki narzędzi.Wartość jest używana MSBuild ToolsVersion atrybutu w pliku projektu, aby zlokalizować odpowiedni klucz rejestru, a następnie używa informacje zawarte w kluczu rejestru do ustawiania właściwości zestawu narzędzi.Na przykład jeśli ToolsVersion ma wartość 12.0, a następnie MSBuild ustawia właściwości zestawu narzędzi zgodnie z tego klucza rejestru: HKLM\Software\Microsoft\MSBuild\ToolsVersions\12.0.

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

  • MSBuildToolsPathOkreśla ścieżkę plików binarnych MSBuild.

  • SDK40ToolsPathOkreśla ścieżkę do dodatkowych narzędzi zarządzanych MSBuild 4.0 (które mogą być 4.0 lub 4.5).

  • SDK35ToolsPathOkreśla ścieżkę dodatkowych narzędzi zarządzanych MSBuild 3.5.

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

Procesami Sub

Jak opisano wcześniej w tym temacie, MSBuild używa klucza rejestru do określenia ścieżki podstawowe narzędzia.Jeśli klucz ma podklucz, MSBuild używa do określenia ścieżki sub — zestaw narzędzi zawierający dodatkowych narzędzi.W takim przypadku zestaw narzędzi jest zdefiniowana przez połączenie definicje właściwości są definiowane w zarówno klucz.

[!UWAGA]

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

Sub procesami uaktywnienia presence z VisualStudioVersion Tworzenie właściwości.Ta właściwość może mieć jedną z następujących wartości:

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

  • "11,0" Określa zestaw narzędzi sub .NET Framework 4,5

  • "12,0" Określa zestaw narzędzi sub .NET Framework 4.5.1

Procesami Sub 10.0 i 11.0 powinien być używany z ToolsVersion 4.0.W nowszych wersjach wersja zestawu narzędzi sub i ToolsVersion powinien być zgodny.

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

MSBuild udostępnia przeciążenia dla ToolLocationHelper metody, który dodaje VisualStudioVersion wyliczany wartość jako parametr

Sub procesami zostały wprowadzone w .NET Framework 4.5.

Zobacz też

Koncepcje

Konfiguracje standardowego i niestandardowego zestawu narzędzi

Inne zasoby

Przegląd wielowersyjności kodu w programie MSBuild