Tworzenie niestandardowej konfiguracji zestawu narzędzi
Zestaw narzędzi MSBuild zawiera odwołania do zadań, obiektów docelowych i narzędzi, których można użyć do kompilowania projektu aplikacji. Program MSBuild zawiera standardowy zestaw narzędzi, ale można również tworzyć niestandardowe zestawy narzędzi.
Standardowe konfiguracje zestawu narzędzi
Program MSBuild zawiera standardowy zestaw Current
narzędzi odwołujący się do bieżącej wersji programu MSBuild, który jest zainstalowany w folderze MSBuild\Current\Bin w katalogu instalacyjnym programu Visual Studio.
Niestandardowe definicje zestawu narzędzi
Jeśli standardowy zestaw narzędzi nie spełnia wymagań dotyczących kompilacji, możesz utworzyć niestandardowy Toolset
zestaw narzędzi . Na przykład może istnieć scenariusz laboratorium kompilacji, w którym musisz mieć oddzielny system do kompilowania projektów C++. Za pomocą niestandardowego Toolset
elementu można przypisać wartości niestandardowe do atrybutu ToolsVersion
podczas uruchamiania pliku MSBuild.exe przy użyciu przełącznika /toolsVersion
wiersza polecenia. Jeśli określisz ToolsVersion
atrybut w pliku projektu, zostanie on zignorowany.
W tym celu można również użyć $(MSBuildToolsPath)
właściwości , aby zaimportować pliki targets z tego katalogu, a także zdefiniować własne niestandardowe właściwości zestawu narzędzi, które mogą być używane dla dowolnego projektu korzystającego z tego zestawu narzędzi.
Określ niestandardowy zestaw narzędzi w pliku konfiguracji msBuild.exe (lub dla niestandardowego narzędzia hostującego aparat MSBuild, jeśli jest to używane). Na przykład plik konfiguracji msBuild.exe może zawierać następującą Toolset
definicję, jeśli chcesz zdefiniować zestaw narzędzi o nazwie MyCustomToolset.
<msbuildToolsets default="MyCustomToolset">
<toolset toolsVersion="MyCustomToolset">
<property name="MSBuildToolsPath"
value="C:\SpecialPath" />
</toolset>
</msbuildToolsets>
<msbuildToolsets>
należy również zdefiniować w pliku konfiguracji w następujący sposób.
<configSections>
<section name="msbuildToolsets"
type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build, Version=15.1.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a">
</section>
</configSections>
Uwaga
Aby można było poprawnie odczytać, <configSections>
musi być pierwszą podsekcją <configuration>
w sekcji .
ToolsetConfigurationSection
to sekcja konfiguracji niestandardowej, która może być używana przez dowolnego hosta MSBuild na potrzeby konfiguracji niestandardowej. Jeśli używasz niestandardowego zestawu narzędzi, host nie musi wykonywać żadnych czynności w celu zainicjowania aparatu kompilacji, z wyjątkiem udostępniania wpisów pliku konfiguracji.
Następujące właściwości są specyficzne dla wartości używanej ToolsVersion
w projektach:
Parametr $(MSBuildBinPath) jest ustawiony na
ToolsPath
wartość określoną w rejestrze lub w pliku konfiguracji, w którym zdefiniowanoToolsVersion
wartość . Ustawienie$(MSBuildToolsPath)
w rejestrze lub pliku konfiguracji określa lokalizację podstawowych zadań i obiektów docelowych. W pliku projektu ta właściwość mapuje na właściwość $(MSBuildBinPath), a także na właściwość $(MSBuildToolsPath).$(MSBuildToolsPath)
jest właściwością zarezerwowaną dostarczaną przez właściwość MSBuildToolsPath określoną w pliku konfiguracji. (Ta właściwość zastępuje$(MSBuildBinPath)
element .$(MSBuildBinPath)
Jednak jest przenoszona w celu zachowania zgodności). Niestandardowy zestaw narzędzi musi definiować oba$(MSBuildToolsPath)
zestawy narzędzi,$(MSBuildBinPath)
ale nie oba, chyba że obie mają tę samą wartość.Do pliku konfiguracji można również dodawać niestandardowe właściwości specyficzne dla elementu ToolsVersion przy użyciu tej samej składni, która służy do dodawania właściwości MSBuildToolsPath. Aby udostępnić te właściwości niestandardowe do pliku projektu, użyj tej samej nazwy co nazwa wartości określonej w pliku konfiguracji. Zestawy narzędzi można zdefiniować, ale nie zestawy narzędzi podrzędnych w pliku konfiguracji.