次の方法で共有


MSBuild ターゲット フレームワークとターゲット プラットフォーム

プロジェクトは、特定のバージョンの .NET Framework であるターゲット フレームワークと、特定のソフトウェア アーキテクチャである ターゲット プラットフォームで実行するようにビルドできます。 たとえば、80x86 プロセッサ ファミリ ("x86") と互換性のある 32 ビット プラットフォーム上の .NET Framework 2.0 で実行するアプリケーションを対象にすることができます。 ターゲット フレームワークとターゲット プラットフォームの組み合わせは、ターゲット コンテキストと呼ばれます。

Von Bedeutung

この記事では、ターゲット フレームワークを指定する以前の方法について説明します。 SDK スタイルのプロジェクトでは、netstandard のような異なる TargetFrameworks が有効になります。 詳細については、「 ターゲット フレームワーク」を参照してください。

ターゲット フレームワークとプロファイル

ターゲット フレームワークは、プロジェクトを実行するためにビルドされる .NET Framework の特定のバージョンです。 ターゲット フレームワークの仕様は、そのバージョンのフレームワークに限定されたコンパイラ機能とアセンブリ参照を有効にするため、必要です。

現在、次のバージョンの .NET Framework を使用できますが、Microsoft でサポートされなくなったものもあれば、今後サポートされなくなる予定の日付もあります。 最新のサポート情報については、 .NET Framework を参照してください。

  • .NET Framework 2.0 (Visual Studio 2005 に含まれる)

  • .NET Framework 3.0 (Windows Vista に含まれる)

  • .NET Framework 3.5 (Visual Studio 2008 に含まれる)

  • .NET Framework 4.0

  • .NET Framework 4.5.2

  • .NET Framework 4.6 (Visual Studio 2015 に含まれる)

  • .NET Framework 4.6.1

  • .NET Framework 4.6.2

  • .NET Framework 4.7

  • .NET Framework 4.7.1

  • .NET Framework 4.7.2

  • .NET Framework 4.8

.NET Framework のバージョンは、それぞれ参照可能なアセンブリの一覧で互いに異なります。 たとえば、プロジェクトが .NET Framework バージョン 3.0 以降を対象としていない限り、Windows Presentation Foundation (WPF) アプリケーションをビルドすることはできません。

ターゲット フレームワークは、プロジェクト ファイルの TargetFrameworkVersion プロパティで指定されます。 Visual Studio 統合開発環境 (IDE) のプロジェクト プロパティ ページを使用して、プロジェクトのターゲット フレームワークを変更できます。 詳細については、「 方法: .NET Framework のバージョンをターゲットにする」を参照してください。 TargetFrameworkVersionで使用できる値は、v2.0v3.0v4.0v3.5v4.5.2v4.6v4.6.1v4.6.2v4.7v4.7.1v4.7.2、およびv4.8です。

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

ターゲット プロファイルは、ターゲット フレームワークのサブセットです。 たとえば、.NET Framework 4 クライアント プロファイルには、MSBuild アセンブリへの参照は含まれません。

ターゲット プロファイルは 、ポータブル クラス ライブラリにのみ適用されます。

ターゲット プロファイルは、プロジェクト ファイルの TargetFrameworkProfile プロパティで指定されます。 IDE のプロジェクト プロパティ ページでターゲット フレームワーク コントロールを使用して、ターゲット プロファイルを変更できます。

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>

ターゲット プラットフォーム

プラットフォームは、特定のランタイム環境を定義するハードウェアとソフトウェアの組み合わせです。 たとえば、

  • x86 は、Intel 80x86 プロセッサまたは同等のプロセッサで実行されている 32 ビット Windows オペレーティング システムを指定します。
  • x64 は、Intel x64 プロセッサまたはそれと同等のプロセッサで実行されている 64 ビット Windows オペレーティング システムを指定します。
  • anycpu は、任意のプラットフォームで実行できるように構成された出力を指定します。 可能な場合は、アプリケーションを 64 ビット プロセスとして実行し、32 ビット モードしか使用できない場合は、32 ビットにフォールバックします。
  • anycpu32bitpreferred は、任意のプラットフォームで実行される出力を指定します。 64 ビットと 32 ビットの両方のアプリケーションをサポートするシステムで、32 ビット モードでアプリケーションを実行します。
  • Xbox は Microsoft Xbox 360 プラットフォームを指定します。
  • ARM は、高度な RISC マシン (ARM) プロセッサを搭載したコンピューターで実行するようにアセンブリをコンパイルします。
  • ARM64 は、A64 命令セットをサポートする Advanced RISC Machine (ARM) プロセッサを搭載したコンピューター上の 64 ビット CLR で実行するようにアセンブリをコンパイルします。

ターゲット プラットフォームは、プロジェクトを実行するためにビルドされる特定のプラットフォームです。 ターゲット プラットフォームは、プロジェクト ファイルの PlatformTarget ビルド プロパティで指定されます。 IDE のプロジェクト プロパティ ページまたは Configuration Manager を使用して、ターゲット プラットフォームを変更できます。

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
</PropertyGroup>

PlatformTarget値がコンパイラに渡され、生成される出力が決定されます。 C# プロジェクトの場合は、C# コンパイラ オプション -platformにマップされます。 プラットフォーム オプションの詳細については、「 コンパイラ オプション: PlatformTarget」を参照してください。

ターゲット構成は、ターゲット プラットフォームのサブセットです。 たとえば、 x86Debug 構成には、ほとんどのコード最適化が含まれていません。 ターゲット構成は、プロジェクト ファイルの Configuration ビルド プロパティで指定されます。 プロジェクトのプロパティ ページまたは Configuration Manager を使用して、ターゲット構成を変更できます。

<PropertyGroup>
   <PlatformTarget>x86</PlatformTarget>
   <Configuration>Debug</Configuration>
</PropertyGroup>