Konfiguracje standardowego i niestandardowego zestawu narzędzi
Tego zestawu narzędzi programu MSBuild zawiera odwołania do zadania, cele i narzędzia, które służą do budowania projekt aplikacji.Program MSBuild zawiera standardowy zestaw narzędzi, ale można również utworzyć niestandardowe zestawy narzędzi.Aby uzyskać informacje dotyczące sposobu określania zestaw narzędzi zobaczZestaw narzędzi MSBuild (ToolsVersion)
Standardowy zestaw narzędzi konfiguracji
MSBuild 12.0 obejmuje następujące standardowych zestawów narzędzi:
ToolsVersion |
Zestaw narzędzi do ścieżki (jak określono we właściwości build MSBuildToolsPath lub MSBuildBinPath) |
---|---|
2.0 |
Windows installation path\Microsoft.Net\Framework\v2.0.50727\ |
3.5 |
Windows installation path\Microsoft.NET\Framework\v3.5\ |
4.0 |
Windows installation path\Microsoft.NET\Framework\v4.0.30319\ |
12.0 |
%ProgramFiles%\MSBuild\12.0\Bin |
ToolsVersion Wartość określa zestaw narzędzi używane przez projekt, który generuje Visual Studio.W Visual Studio 2013 wartością domyślną jest "12.0" (niezależnie od tego, jaka wersja określona w pliku projektu), ale można zastąpić tego atrybutu za pomocą /toolsversion przełączanie w wierszu polecenia.Informacje na temat tego atrybutu i inne sposoby określania ToolsVersion, zobacz Zastępowanie ustawień ToolsVersion.
Jeśli ToolsVersion nie jest określony, klucz rejestru HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\<numer wersji>definiuje \DefaultToolsVersion ToolsVersion, która jest zawsze 2.0.
Następujące klucze rejestru określić ścieżkę instalacji MSBuild.exe.
Klucz rejestru |
Nazwa klucza |
Ciąg wartości klucza |
---|---|---|
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\ |
MSBuildToolsPath |
Ścieżka instalacji programu.NET Framework 2.0 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MSBuild\ToolsVersions\3.5\ |
MSBuildToolsPath |
Ścieżka instalacji programu.NET Framework 3.5 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MSBuild\ToolsVersions\4.0\ |
MSBuildToolsPath |
Ścieżka instalacji programu.NET Framework 4 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MSBuild\ToolsVersions\12.0\ |
MSBuildToolsPath |
Ścieżka instalacji programu MSBuild |
Sub-zestawy narzędzi
Jeśli podklucz klucza rejestru w poprzedniej tabeli, program MSBuild używa w celu określenia ścieżki sub zestaw narzędzi mogą zastąpić ścieżkę w nadrzędny zestaw narzędzi.Przykładem jest następujący podklucz:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0\12.0
Jeśli wszystkie właściwości są zdefiniowane w zarówno podstawowy zestaw narzędzi i wybranych sub-zestaw narzędzi, są używane definicje właściwości w sub-zestaw narzędzi.Na przykład, definiuje zestaw narzędzi programu MSBuild 4.0 SDK40ToolsPath wskaż 7.0a SDK, ale program MSBuild 4.0\11.0 toolset definiuje tej samej właściwości, aby wskazywały 8.0a SDK.Jeśli VisualStudioVersion jest wyłączony, SDK40ToolsPath wskazywałyby na 7.0a, ale jeśli VisualStudioVersion jest ustawiona na 11.0, właściwość zamiast wskazywałyby na 8.0a.
VisualStudioVersion Kompilacji właściwość wskazuje, czy sub zestaw narzędzi staje się aktywny.Na przykład VisualStudioVersion określa wartość "12.0" sub-zestaw narzędzi MSBuild 12.0.Aby uzyskać więcej informacji, zobacz sekcję zestawów narzędzi Sub Zestaw narzędzi MSBuild (ToolsVersion).
[!UWAGA]
Firma Microsoft zaleca, unikać zmieniania tych ustawień.Niemniej jednak można dodać własne ustawienia i zdefiniować niestandardowy zestaw narzędzi komputera definicje, jak opisano w następnej sekcji.
Definicje niestandardowy zestaw narzędzi
Gdy standardowy zestaw narzędzi nie spełnia wymagań dotyczących kompilacji, można utworzyć niestandardowy zestaw narzędzi.Na przykład, może być kompilacja scenariusz laboratorium w którym gracz ma oddzielny system do tworzenia Visual C++ projektów.Za pomocą narzędzi niestandardowych, można przypisać wartości niestandardowych do ToolsVersion atrybutu podczas tworzenia projektów lub uruchomić MSBuild.exe.W ten sposób, można również użyć $(MSBuildToolsPath) właściwość, aby zaimportować pliki .targets z tego katalogu, a także definiowanie właściwości swój własny niestandardowy zestaw narzędzi, które mogą być używane dla każdego projektu, który używa ten zestaw narzędzi.
Określić niestandardowy zestaw narzędzi w pliku konfiguracyjnym dla MSBuild.exe (lub niestandardowe narzędzie, obsługującego aparatu MSBuild, jeśli to, co używasz).Na przykład plik konfiguracyjny dla MSBuild.exe zawiera następującą definicję Toolset Jeśli chcesz zastąpić domyślne zachowanie ToolsVersion 12.0.
<msbuildToolsets default="12.0">
<toolset toolsVersion="12.0">
<property name="MSBuildToolsPath"
value="C:\SpecialPath" />
</toolset>
</msbuildToolsets>
<msbuildToolsets>musi także być zdefiniowany w pliku konfiguracyjnym w następujący sposób.
<configSections>
<section name="msbuildToolsets"
Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build.Engine, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
</section>
</configSections>
[!UWAGA]
Można odczytać prawidłowo, <configSections> musi być pierwszym podsekcji w <configuration> sekcji.
ToolsetConfigurationSectionjest sekcji konfiguracji niestandardowych, które można za pomocą dowolnego hosta programu MSBuild dla konfiguracji niestandardowych.Jeśli używasz niestandardowy zestaw narzędzi, host nie ma coś zrobić, aby zainicjować aparat kompilacji z wyjątkiem zapewniają wpisy w pliku konfiguracji.Definiując wpisy w rejestrze, można określić procesami komputera, które stosuje się do MSBuild.exe, Visual Studio, a wszystkie hosty MSBuild.
[!UWAGA]
Jeśli plik konfiguracyjny definiuje ustawienia dla ToolsVersion który został już zdefiniowany w rejestrze, dwie definicje nie są scalane.Definicja w pliku konfiguracyjnym ma pierwszeństwo i ustawienia w rejestrze na który ToolsVersion są ignorowane.
Następujące właściwości są specyficzne dla wartości ToolsVersion to jest używane w projektach:
$(MSBuildBinPath) jest ustawiona na ToolsPath wartość, która jest określona w rejestrze lub w pliku konfiguracyjnym gdzie ToolsVersion jest zdefiniowana.$(MSBuildToolsPath) Ustawienie w rejestrze lub w pliku konfiguracyjnym Określa lokalizację głównych zadań i celów.W pliku projektu mapuje do właściwości $(MSBuildBinPath), a także z właściwością $(MSBuildToolsPath).
$(MSBuildToolsPath)jest zarezerwowany właściwość, która jest dostarczana przez właściwość MSBuildToolsPath, która jest określona w pliku konfiguracyjnym. (Ta właściwość zastępuje $(MSBuildBinPath).Jednakże $(MSBuildBinPath) zostaje przeniesiona na zgodnooć.) Niestandardowy zestaw narzędzi należy zdefiniować albo $(MSBuildToolsPath) lub $(MSBuildBinPath) , ale nie oba naraz, chyba że mają tę samą wartość.
Można również dodać właściwości niestandardowe, specyficzne dla ToolsVersion do pliku konfiguracji przy użyciu tej samej składni, która umożliwia dodawanie właściwości MSBuildToolsPath.Aby udostępnić te właściwości niestandardowe do pliku projektu, należy użyć nazwy sam jako nazwę wartości, który jest określony w pliku konfiguracyjnym.Zestawy narzędzi, ale nie sub procesami mogą określić w pliku konfiguracyjnym.