標準ツールセット構成とカスタム ツールセット構成
MSBuildタスクのツールセットは、アプリケーション プロジェクトのビルドに使用できるターゲットおよびツールが含まれています。MSBuildは標準ツールセットが用意されていますが、カスタム ツールセットを作成できます。ツールセットを指定する方法の詳細については、MSBuild ツールセット (ToolsVersion)を参照してください。
標準ツールセット構成
MSBuild 4.5 には以下の標準ツールセットが含まれています。
ToolsVersion |
ツールセットのPath (MSBuildToolsPathまたはMSBuildBinPathのビルドで指定されたプロパティ) |
---|---|
2.0 |
Windowsのインストール パス\Microsoft.Net\Framework\v2.0.50727\ |
3.5 |
Windowsのインストール パス\Microsoft.NET\Framework\v3.5.20223\ |
4.0 |
Windowsのインストール パス\Microsoft.NET\Framework\v4.0.30319\ |
ToolsVersion の値には、ツールセットがVisual Studioが生成するプロジェクトが使用するかを判定します。プロジェクト ファイルの プロジェクト の要素の属性としてを指定します ToolsVersion、コマンド プロンプトで /toolsversion スイッチを使用して、この属性をオーバーライドできます。この属性の詳細については、ToolsVersionを指定する、このスイッチ、およびそのほかの方法は ToolsVersion 設定のオーバーライドが表示されます。
ToolsVersion が指定されていない場合、次のキーは ToolsVersionを定義します。
レジストリ ハイブ |
キー名 |
文字列キー値 |
---|---|---|
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\3.5\ |
DefaultToolsVersion |
2.0 |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0\ |
DefaultToolsVersion |
2.0 |
次のレジストリ キーは、各 ToolsVersionに関連付けられている.NET Frameworkのバージョンのインストール パスを指定します。インストール パスは、ツールセット情報を定義するMSBuild.exeの位置を指定します。
レジストリ ハイブ |
キー名 |
文字列キー値 |
---|---|---|
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\2.0\ |
MSBuildToolsPath |
.NET Framework 2.0のInstall path |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5\ |
MSBuildToolsPath |
.NET Framework 3.5のInstall path |
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\ |
MSBuildToolsPath |
.NET Framework 4のInstall path |
サブ ツールセット
前の表のレジストリ キーにサブキーがある場合、MSBuildはより多くのツールを含むサブ ツールセットのパスを特定するときに使用します。次のサブキーの例を示します:
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0
VisualStudioVersion のビルド プロパティは、サブピクセル ツールセットをアクティブにするかどうかを示します。たとえば、「11.0」の VisualStudioVersion の値は、.NET Framework 4.5のサブ ツールセットを指定します。詳細については、MSBuild ツールセット (ToolsVersion)のサブ ツールセットのセクションを参照してください。
[!メモ]
これは次の設定を変更することは避けることをお勧めします。いるかに関係なく、次のセクションで説明するため、独自の設定を追加し、コンピューター全体のカスタム ツールセットの定義を確認できます。
カスタム ツールセット定義
標準ツールセットがビルド要件に適合しない場合は、カスタム ツールセットを作成できます。たとえば、Visual C++ のプロジェクトをビルドするための別のシステムが必要なビルド ラボのシナリオがある場合があります。カスタム ツールセットを使用すると、プロジェクトまたは実行のMSBuild.exeを作成するとき ToolsVersion の属性にカスタム値を割り当てることができます。これにより、そのディレクトリから.targetsファイルをインポートするに $(MSBuildToolsPath) のプロパティを使用できます。
MSBuild.exeの構成ファイルにカスタム ツールセットを指定します (またはそれが使用しているもの) MSBuild エンジンをホストするカスタム ツールの場合は。たとえば、MSBuild.exeの構成ファイルに次のツールセット定義を含めることができます。
<msbuildToolsets default="3.0">
<toolset toolsVersion="4.0">
<property name="MSBuildToolsPath"
value="C:\Windows\Microsoft .NET\Framework\v3.0" />
</toolset>
</msbuildToolsets>
<msbuildToolsets> は、構成ファイルで次のように定義する必要があります。
<configSections>
<section name="msbuildToolsets"
Type="Microsoft.Build.BuildEngine.ToolsetConfigurationSection,
Microsoft.Build.Engine, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
</section>
</configSections>
[!メモ]
正しく読み込まれるようにするには、<configSections> は <configuration> のセクションの最初の部分である必要があります。
ToolsetConfigurationSection は、どのようなホストでもカスタム構成として使用できるカスタム構成セクションです。カスタム ツールセットを使用した場合、ホストでは、構成ファイル エントリの提供を除き、ビルド エンジンの初期化処理は必要ありません。レジストリにエントリを定義することにより、コンピューター全体に適用されるツールセットを指定し、MSBuild.exe、Visual Studio、および MSBuild のすべてのホストで使用できます。
[!メモ]
レジストリに定義済み構成ファイルが ToolsVersion の設定を定義する場合は、2種類の定義はマージされません。構成ファイルの定義が優先され、その ToolsVersion のレジストリ設定は無視されます。
次のプロパティは、プロジェクトで使用される ToolsVersion の値に固有です:
$ (MSBuildBinPath) はレジストリまたは ToolsVersion が定義されている構成ファイルに指定された ToolsPath の値に設定されます。レジストリまたは構成ファイルで設定 $(MSBuildToolsPath) は、ツールセットの場所を指定します。プロジェクト ファイルでは、この設定が $(MSBuildBinPath) プロパティにマップされ、さらに $(MSBuildToolsPath) プロパティにもマップされます。
$ (MSBuildToolsPath) は、構成ファイルに指定されたMSBuildToolsPathプロパティによって指定される予約済みのプロパティです。(このプロパティは $(MSBuildBinPath) に代わるものです。ただし、$(MSBuildBinPath) も互換性のために残されています)。
MSBuildToolsPath プロパティを追加する場合と同じ構文を使用して、ToolsVersion 固有のカスタム プロパティを構成ファイルに追加することもできます。これらのカスタム プロパティをプロジェクト ファイルで使用できるようにするには、構成ファイルに指定された値と同じ名前を使用します。