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

更新 : 2007 年 11 月

Visual Studio 2008 のマルチ ターゲット機能を使用すると、アプリケーションの使用で必要となる .NET Framework のバージョンを指定できます。マルチ ターゲットの主な利点は、Visual Studio 2008 を使用して、.NET Framework Version 2.0、3.0、または 3.5 をターゲットとするプロジェクトを作成できることです。この機能を使用すると、新しい .NET Framework 依存関係を追加せずに、Visual Studio 2005 で作成されたプロジェクトの開発を続行することもできます。マルチ ターゲット機能により、アプリケーションは指定された .NET Framework バージョンで利用できる機能だけを使用することが保証されます。さらに、マルチ ターゲット機能を使用すると、新しい .NET Framework バージョンを配置パッケージに追加せずに、古いアプリケーションの配置を続行できます。

マルチ ターゲット機能

以前のバージョンの Visual Studio では、.NET Framework の最新バージョンのインストールが必要でした。たとえば、Visual Studio 2005 を使用するには、.NET Framework 2.0 のインストールも必要でした。新しい .NET Framework バージョンには追加の機能が用意されていますが、プロジェクトに新しい .NET Framework 依存関係も追加することがあります。この依存関係により、以前実行していたシステムでアプリケーションを実行できなくなる場合があります。これは、アプリケーションで下位互換性が必要な場合に問題となることがあります。

しかし、Visual Studio 2008 を使用すると、プロジェクトで必要な特定の .NET Framework バージョンをターゲットとすることができます。これを行うには、[プロジェクトを開く] ダイアログ ボックスおよび [新しいプロジェクト] ダイアログ ボックスの右上隅の [Framework バージョン] ボックスでプロジェクトを選択します。

既定では、Visual Studio 2005 プロジェクトを Visual Studio 2008 にアップグレードする場合、引き続き .NET Framework 2.0 をターゲットとします。必要に応じて、ターゲットを .NET Framework 2.0 から .NET Framework 3.0 または .NET Framework 3.5 に切り替え、そのバージョンの新機能を利用することもできます。

.NET Framework の新しいバージョン

Visual Studio 2005 は .NET Framework 2.0 を対象としていました。Visual Studio 2008 では、他の .NET Framework ライブラリをターゲットにすることができます。

  • .NET Framework 3.0: Windows Vista に付属しています。Windows Presentation Foundation、Windows Communication Foundation、および Windows Workflow Foundation が含まれています。

  • .NET Framework 3.5: Visual Studio 2008 に付属しています。

  • .NET Framework 3.5 SP1: Visual Studio 2008 SP1 に付属しています。

.NET Framework Client Profile: Visual Studio 2008 SP1 に付属しています。.NET Framework Client Profile の詳細については、「.NET Framework Client Profile」を参照してください。

.NET Framework 3.5 SP1 の指定

Visual Studio 2008 SP1 からは、アプリケーションのターゲットとして .NET Framework 3.5 SP1 を指定できるようになりました。ただし、.NET Framework 3.5 SP1 は、[対象のフレームワーク] ドロップダウン リストには表示されません。このため、.NET Framework 3.5 SP1 をターゲットに指定するアプリケーションについては、新しい System.Data.Entity.dll アセンブリへの参照を追加するか、次のいずれかの操作を行って Visual Studio 2008 SP1 で SP1 ClickOnce 機能を有効にする必要があります。

  • エラー URL を指定します。

  • スイート名を指定します。

  • デスクトップ ショートカットを作成します。

  • [アプリケーション ファイル] ダイアログ ボックスで、ハッシュからファイルを除外します。

  • [署名] ページの [ClickOnce マニフェストに署名する] をオフにします。

これらのいずれかの操作を実行すると、Visual Studio 2008 SP1 のターゲットが自動的に .NET Framework 3.5 SP1 に設定されます。詳細については、「方法 : 特定の .NET Framework を対象にする」の「.NET Framework Version 3.5 SP1 の指定」を参照してください。

Bb398197.alert_note(ja-jp,VS.90).gifメモ :

Visual Studio 2008 SP1 または .NET Framework 3.5 SP1 をインストールした後も、.NET Framework 3.5 のみを必要とする既存のアプリケーションは、引き続き .NET Framework 3.5 をターゲットとします。

ターゲット プロジェクトの作成とオープン

[Framework バージョン] ボックスを使用すると、プロジェクトのターゲットとなる配置フレームワークを指定できます。このビューで選択できるテンプレートのリストは、指定されたフレームワークのターゲットに基づいてフィルタされます。新しい Visual Studio 2008 プロジェクトは自動的に .NET Framework の最新バージョン (現在 .NET Framework 3.5) をターゲットとします。これにより、すべての新機能が提供されます。

Visual Studio 2008 には、現在のターゲット .NET Framework バージョンに関連したコントロールおよびその他のプロジェクト項目だけが表示されます。これにより、新しいコントロールをプロジェクトに追加することによって誤って新しい依存関係が新しいバージョンの .NET Framework に追加されることがないようにします。

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

Visual Studio 2008 では、[参照の追加] ダイアログ ボックスは、ターゲット .NET Framework バージョンと関連していないシステム アセンブリを無効にします (システム アセンブリとは .dll ファイルのことで、ある .NET Framework バージョンの一部であるか、または依存関係を持ちます)。これにより、ターゲット バージョンにないアセンブリへの参照を追加せずに済みます。プロジェクト ファイルを変更し、現在プロジェクトでターゲットとなっているバージョンより新しい .NET Framework バージョンに属する参照を組み込む場合、その参照は解決されません。また、この参照に依存するコントロールを追加または使用することもできません。この参照を解決するには、プロジェクトの .NET Framework ターゲットをその参照が含まれるターゲットに切り替えます。これはプロジェクトの [プロパティ ページ] 上で行うことができます。詳細については、「プロジェクト デザイナを使用したプロジェクトのプロパティの管理」を参照してください。

ユーザーが作成したアセンブリに参照を追加するときに、それが現在プロジェクトでターゲットとなっているバージョンより新しい .NET Framework バージョンに属するシステム アセンブリを直接的または間接的に参照する場合、Visual Studio 2008 によって警告が表示されます。この警告を無視する場合は、必要な .NET Framework ファイルがすべて配置プロジェクトに含まれていることを確認してください。

.NET Framework 3.5 プロジェクトでの LINQ の有効化

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

参照

その他の技術情報

MSBuild の概念