適当に書くので参考までに。
マルチターゲット
アプリのビルドの際にいろいろなターゲットを指定できる能力のこと。ターゲットには以下の内容が含まれる
- .NET Frameworkのバージョン(Target Framework)
- プロセッサ(Target platform)
- 上の2つを合わせてTarget contextと呼ぶ。
Toolset
ターゲットとコンパイラを合わせてToolsetと言う。ToolsVersionと同じ。
参照アセンブリ
ツールセットで指定される。C:\Program Files\Reference Assemblies\Microsoft\Frameworkにあるアセンブリを参照する。ここにあるアセンブリは実装を持たず機能があるかだけを表す。
ToolsVersion
VSのプロジェクトファイルには以下の内容が含まれる。
1 |
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
15.0は使うMSBuildのバージョンだがVS2013以降はこの値は使われず、VSのバージョンに合ったバージョンが使われる。MSBuildは互換性が高いのでこの値は対して意味がない。
VSのバージョンとToolsVersionの対応は以下
- VS2010とVS2012 → 4.0
- VS2013 → 12.0
- VS2014 → 14.0
- VS2017 → 15.0
14.0以前はレジストリにある以下のキーを参照する
1 |
HKLM\Software\Microsoft\MSBuild\ToolsVersions\14.0 |
15.0以降はレジストリは見ないで、以下のものを使う
C:\Program Files\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin