.NET Frameworkのマルチターゲットの話

適当に書くので参考までに。

マルチターゲット

アプリのビルドの際にいろいろなターゲットを指定できる能力のこと。ターゲットには以下の内容が含まれる

  • .NET Frameworkのバージョン(Target Framework)
  • プロセッサ(Target platform)
  • 上の2つを合わせてTarget contextと呼ぶ。

Toolset

ターゲットとコンパイラを合わせてToolsetと言う。ToolsVersionと同じ。

参照アセンブリ

ツールセットで指定される。C:\Program Files\Reference Assemblies\Microsoft\Frameworkにあるアセンブリを参照する。ここにあるアセンブリは実装を持たず機能があるかだけを表す。

ToolsVersion

VSのプロジェクトファイルには以下の内容が含まれる。

15.0は使うMSBuildのバージョンだがVS2013以降はこの値は使われず、VSのバージョンに合ったバージョンが使われる。MSBuildは互換性が高いのでこの値は対して意味がない。
VSのバージョンとToolsVersionの対応は以下

  • VS2010とVS2012 → 4.0
  • VS2013 → 12.0
  • VS2014 → 14.0
  • VS2017 → 15.0

14.0以前はレジストリにある以下のキーを参照する

15.0以降はレジストリは見ないで、以下のものを使う
C:\Program Files\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)