Visual Studio のマルチ ターゲットの概要

Visual Studioのこのバージョンでは、アプリケーションで必要とされる .NET Framework のバージョンを指定できます。したがって、Visual Studio のこのバージョンを使用して、以前のバージョンで開始したプロジェクトの開発を続ける場合は、対象のフレームワークを変更する必要はありません。異なるバージョンのフレームワークを対象とする複数のプロジェクトを含むソリューションを作成することもできます。特定のフレームワークを対象にする機能は、指定したバージョンのフレームワークで利用できる機能のみをアプリケーションで使用することを保証するのに役立ちます。

ヒントヒント

異なるプラットフォームに対応する複数のアプリケーションを対象にすることもできます。詳細については、「MSBuild のマルチ ターゲットの概要」を参照してください。

フレームワークの対象設定機能

フレームワークの対象設定機能には、次の特徴があります。

  • 旧バージョンの .NET Framework を対象とするプロジェクトを開いたときに、Visual Studio でそのプロジェクトを自動的にアップグレードするか、前のバージョンを対象とした状態を維持することができます。

  • プロジェクトを作成するときに、対象とする .NET Framework のバージョンを指定できます。

  • 既存のプロジェクトの対象となっている .NET Framework のバージョンを変更できます。

  • 同じソリューション内にある複数のプロジェクトのそれぞれで、異なるバージョンの .NET Framework を対象とすることができます。

  • プロジェクトの対象となる .NET Framework のバージョンを変更すると、Visual Studio では、参照ファイルおよび構成ファイルに対して必要な変更が加えられます。

旧バージョンの .NET Framework を対象とするプロジェクトで作業する場合は、Visual Studio は開発環境で次のような変更を動的に行います。

  • [新しいプロジェクト][新しい項目の追加][新しい参照の追加][サービス参照の追加] の各ダイアログ ボックスの項目をフィルター処理して、対象のバージョンで使用できない選択肢を除外します。

  • ツールボックス内のカスタム コントロールをフィルター処理し、対象のバージョンで使用できないコントロールを除外したり、複数のコントロールが使用可能である場合に最新のコントロールのみを表示したりします。

  • IntelliSense をフィルター処理して、対象のバージョンで使用できない言語機能を除外します。

  • プロパティ ウィンドウのプロパティをフィルター処理して、対象のバージョンで使用できないプロパティを除外します。

  • メニュー オプションをフィルター処理して、対象のバージョンで使用できないオプションを除外します。

  • ビルドを行う場合は、対象のバージョンに適したコンパイラのバージョンおよびコンパイラ オプションを使用します。

[!メモ]

フレームワークの対象機能は、開発中のアプリケーションが正しく実行されることを保証するわけではありません。対象のバージョンで実行できるかどうかを確認するために、アプリケーションをテストする必要があります。.NET Framework 2.0 より前のバージョンのフレームワークを対象にすることはできません。

対象フレームワークのバージョンの選択

プロジェクトを作成するときに、[新しいプロジェクト] ダイアログ ボックスで、対象の .NET Framework のバージョンを選択します。この選択内容に基づいて、使用できるプロジェクト テンプレートの一覧が抽出されます。既存のプロジェクトでは、プロジェクトのプロパティ ダイアログ ボックス内で、対象となる .NET Framework のバージョンを変更できます。詳細については、「方法: .NET Framework のバージョンをターゲットにする」を参照してください。

[!メモ]

Visual Studio Express Edition では、[新しいプロジェクト] ダイアログ ボックスで対象のフレームワークを設定することはできません。

システム参照およびユーザー アセンブリ参照の解決

.NET Framework の特定のバージョンを対象にするには、最初に適切なアセンブリ参照をインストールする必要があります。.NET Framework Version 2.0、3.0、および 3.5 に対応するアセンブリ参照は、.NET Framework 3.5 SP1 に含まれています。これは、"Microsoft Download Center, Microsoft Visual Studio (Microsoft ダウンロード センター、Microsoft Visual Studio)" Web サイトからダウンロードできます。.NET Framework 3.5 Client Profile、.NET Framework 4、.NET Framework 4 Client Profile および Silverlight に対応するアセンブリ参照も、"Visual Studio Downloads (Visual Studio ダウンロード)" Web サイトから入手できます。

[!メモ]

.NET Framework クライアント プロファイルは、限定されたセットのライブラリと機能を備えた .NET Framework のサブセットです。クライアント プロファイルの詳細については、".NET Framework Client Profile (.NET Framework クライアント プロファイル)" を参照してください。

[参照の追加] ダイアログ ボックスでは、対象の .NET Framework のバージョンに関係しないシステム アセンブリが無効にされます。その結果、それらのアセンブリをプロジェクトに誤って追加することはありません (システム アセンブリとは .dll ファイルのことで、特定のバージョンの .NET Framework の一部です)。対象より新しいバージョンのフレームワークに属する参照は解決されず、そのような参照に依存するコントロールを追加することはできません。このような参照を有効にするには、プロジェクトの対象である .NET Framework を、その参照を含むバージョンに再設定します。詳細については、"プロジェクト デザイナーの概要 (プロジェクト デザイナーの紹介)" を参照してください。

アセンブリ参照の詳細については、"デザイン時のアセンブリの解決 (デザイン時のアセンブリの解決)" を参照してください。

LINQ の有効化

.NET Framework Version 3.5 以降を対象にする場合は、System.Core の参照と System.Linq のプロジェクトレベル インポート (Visual Basic のみ) が自動的に追加されます。LINQ 機能を使用する場合は、[Option Infer] もオンにする必要があります (Visual Basic のみ)。対象をそれより前のバージョンの .NET Framework に変更すると、この参照とインポートは自動的に削除されます。詳細については、「方法 : LINQ プロジェクトを作成する」を参照してください。

参照

その他の技術情報

MSBuild のマルチ ターゲットの概要

.NET Framework Targeting for Web Projects

"Platform compatibility and system requirements (プラットフォームの互換性とシステム要件)"