Share via


.Web サイトが対象とする .NET Framework の指定

更新 : 2007 年 11 月

Visual Studio 2008 のマルチ ターゲット機能を使用すると、Web サイトまたは Web サービスが対象とする .NET Framework のバージョンを指定できます。これにより、Visual Studio 2008 を使用して、プロジェクトで誤って新しいアセンブリの依存関係を作成することなく、既存または新規の Visual Studio 2008 Web プロジェクトを変更できます。Visual Studio 2008 を使用することで、.NET Framework 2.0、.NET Framework version 3.0、または .NET Framework version 3.5 Service Pack 1 に配置できる Web サイトを構築できます。これを行うには、プロジェクトに対して指定した .NET Framework のバージョンで使用できる機能のみプロジェクトで使用するようにします。

このトピックでは、以下に関する情報を提供します。

シナリオ

Visual Studio 2008 のマルチ ターゲット機能を使用すると、.NET Framework の特定バージョンを Web サイトの対象にできます。たとえば、Windows Communication Foundation (WCF) がサポートするセキュリティ機能を使用する ASP.NET Web アプリケーションを作成する必要があるとします。このアプリケーションで統合言語クエリ (LINQ: Language-Integrated Query) をサポートする必要がない場合、.NET Framework version 3.0 を対象にすることができます。

ページのトップへ

マルチ ターゲット機能

Visual Studio 2008 のマルチ ターゲット機能では、以下を実行できます。

  • 新しい Web サイトを作成するときに、.NET Framework のバージョンを選択できます。

  • Web サイトを開くときに、Visual Studio で .NET Framework のバージョンを検出できます。

    Visual Studio は、Web サイトが .NET Framework version 2.0 を使用していることを検出すると、Visual Studio が .NET Framework version 3.5 Service Pack 1 を対象にするためのオプションを提供します。

  • Visual Studio は、現在対象となっている .NET Framework のバージョンに対応していない機能をフィルタで除外します。これには、メニュー オプション、ツールボックス オブジェクト、コンパイル プロセス、およびアセンブリ参照が含まれます。

  • プロジェクト プロパティを使用して、対象とする .NET Framework のバージョンを選択できます。

.NET Framework ライブラリ

Visual Studio では、.NET Framework の次のバージョンを対象にすることができます。

  • .NET Framework Version 2.0 Microsoft Visual Studio 2005 に組み込まれている .NET Framework のバージョン。

  • .NET Framework Version 3.0  オペレーティング システムに組み込まれている .NET Framework のバージョン。.NET Framework のこのバージョンは、Windows Presentation Foundation (WPF)、Windows Communication Foundation (WCF)、Windows CardSpace、および Windows Workflow Foundation をサポートしています。

  • .NET Framework Version 3.5 Visual Studio に既定で組み込まれている .NET Framework のバージョン。.NET Framework のこのバージョンは、ASP.NET AJAX および統合言語クエリ (LINQ) をサポートしています。

ページのトップへ

背景

Visual Studio 2008 では、単一の開発環境から .NET Framework の複数のバージョンを対象にすることができます。Visual Studio 2005 およびそれ以前のバージョンでは、.NET Framework のバージョンを 1 つだけ対象にできました。.NET Framework の各バージョンに対応するアプリケーションを記述する必要のあった開発者は、Visual Studio のバージョンを複数同時に実行することで、これを行っていました。複数のバージョンを対象にする場合、関連するランタイム依存および下位互換性を主に考慮する必要がありました。

Visual Studio 2008 では、コードに変更を加えずに Visual Studio 2005 Web サイトを開くことができます。ただし、Web サイトのプロジェクト ファイルはアップグレードされます。既定では、Visual Studio 2005 プロジェクトは継続して .NET Framework 2.0 を対象にします。ただし、既存プロジェクトの対象 .NET Framework のバージョンを切り替えて、.NET Framework の新しいバージョンの新しい機能を利用できます。

最新の .NET Framework の機能が新しいアセンブリに組み込まれます。.NET Framework の以前のバージョンのアセンブリは変更されません。

新しい Web サイトの作成

新しい Web サイトを作成するとき、プロジェクトの対象にする .NET Framework のバージョンを指定できます。新しい Visual Studio プロジェクトは、.NET Framework の最新バージョンを自動的に対象にします。

次の手順では、.NET Framework の指定したバージョンを対象にする新規 Web サイトを作成する方法を説明します。

新規 Web サイトを作成し、対象の .NET Framework を指定するには

  1. Visual Studio で、[ファイル] メニューの [新しい Web サイト] をクリックします。

    [新しい Web サイト] ダイアログ ボックスが表示されます。

  2. .NET Framework のバージョンの一覧から、プロジェクトの対象とする .NET Framework のバージョンを選択します。

    ダイアログ ボックスに表示されているテンプレートの一覧が、選択した .NET Framework に基づきフィルタされます。

  3. [Visual Studio にインストールされたテンプレート] で、[ASP.NET Web サイト] など Web サイトの種類を選択します。

  4. [OK] をクリックします。

既存の Visual Studio 2005 Web サイトを開く

Visual Studio 2008 では、.NET Framework の新しいバージョンにプロジェクトをアップグレードしなくても、Visual Studio の以前のバージョンで作成されたプロジェクトまたは Web サイトを開くことができます。Visual Studio 2005 プロジェクトを編集、コンパイル、ビルド、デバッグ、および保存できます。

.NET Framework の新しいバージョンを対象としていない既存の Visual Studio 2005 プロジェクトを開くことができます。Visual Studio 2008 で Web アプリケーションを初めて開くと、Web サイトの対象を .NET Framework version 3.5 Service Pack 1 にするよう要求するメッセージが表示されます。対象とする .NET Framework を変更する必要がない場合は、[いいえ] をクリックします。

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

リモート Web サイトを開いても、Visual Studio 2008 は、リモート サーバーにインストールされている .NET Framework のバージョンに従い、使用できるバージョンをフィルタ処理しません。

既存の Web サイトの対象 .NET Framework のバージョンをアップグレードまたはダウングレードする

次の手順では、既存のプロジェクトが対象とする .NET Framework のバージョンを変更して、新しいバージョンまたは以前のバージョンを対象にする方法を説明します。

.NET Framework の新しいバージョンにアップグレードすることで、新しい機能を利用できます。Web アプリケーションを .NET Framework の異なるバージョンにダウングレードすることで、異なる Web サーバーにインストールされている .NET Framework のバージョンを対象にすることができます。

プロジェクトをダウングレードする場合、プロジェクトが .NET Framework の以前のバージョンで動作するか確認する必要があります。このためには、通常はプロジェクトにおいて手動で変更を行う必要があります。

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

.NET Framework の各バージョンで使用できる各種機能、および Web アプリケーションの .NET Framework のバージョンを変更したときの主な変更内容は Web.config ファイルに保存されます。

Web サイトの .NET Framework のバージョンをアップグレードまたはダウングレードするには

  1. Visual Studio 2008 で、アップグレードまたはダウングレードする Web サイトを開きます。

  2. ソリューション エクスプローラで、プロジェクト名を右クリックし、[プロパティ ページ] をクリックします。

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

    Web アプリケーション プロジェクトの場合、ソリューション エクスプローラでプロジェクトを右クリックし、[プロパティ] をクリックします。

  3. [プロジェクトのプロパティ] ページで [ビルド] タブをクリックします。

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

    C# を使用する Web アプリケーション プロジェクトの場合、[プロジェクトのプロパティ] ページの [アプリケーション] タブをクリックします。Visual Basic を使用する Web アプリケーション プロジェクトの場合、[プロジェクトのプロパティ] ページの [コンパイラ] タブをクリックし、[コンパイラの詳細設定] をクリックします。

  4. .NET Framework のドロップダウン リストで、対象とするバージョン番号を選択します。

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

    Web アプリケーション プロジェクトの場合、Visual Studio でプロジェクトがアンロードされ、再度読み込まれます。

  5. プロジェクトをダウングレードした場合は、以下を実行します。

    1. 対象とする .NET Framework のバージョンに属さないコンポーネントへの参照を手動で削除します。

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

      .NET Framework の以前のバージョンで動作しないアセンブリ参照が原因で、コードで参照のエラーが見つかる場合があります。この場合、欠落しているアセンブリ参照を手動で再配置します。

    2. プロジェクトにサービス参照が含まれている場合、サービス参照を右クリックして、[削除] をクリックすることでそれらのサービス参照を削除します。

アセンブリ参照

Visual Studio では、.NET Framework の異なるバージョンに自動的にアップグレードせずに、Web プロジェクトへ参照を追加できます。

アセンブリへの参照を追加する場合、対象の .NET Framework のバージョンに属するシステム アセンブリのみ [参照の追加] ダイアログ ボックスに表示されます。これにより、対象の .NET Framework に属さないアセンブリへの参照を誤って追加せずに済みます。

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

現在のプロジェクトよりも新しい、対象の .NET Framework に属する参照は、プロジェクト ファイルを手動で編集して含めることができます。ただし、これにより、コンパイル時に警告が生成されます。

対象の .NET Framework に属さないシステム アセンブリを参照するプロジェクトに、ユーザー アセンブリ参照を追加できます。この場合、Visual Studio により警告が表示されます。この警告を無視した場合、ビルド時に再度表示されます。

ページのトップへ

.NET Framework の各バージョンを対象にするプロジェクト間の相違点

このセクションでは、.NET Framework の各バージョンを対象にする Web プロジェクト間の相違点について主に説明します。相違点には、コンパイル、アセンブリのサポート、機能のサポートなどがあります。Visual Studio の一部の機能 (IntelliSense、配置など) は、マルチ ターゲット機能をサポートしていません。

新しい Web サイトの場合、選択した .NET Framework のバージョンにより以下が決定します。

  • 既定で参照されるアセンブリ。

  • 既定で ASP.NET Web ページおよびクラス ファイルに組み込まれる名前空間。

  • 動的コンパイルの実行時およびデザイン時に ASP.NET が使用するコンパイラのバージョン。

  • オブジェクト、新しいアイテム、アセンブリ参照、Web 参照、サービス参照など、Visual Studio で選択できるオプション。

既存の Web サイトを開くと、Visual Studio は、.NET Framework のバージョンの検出を試行し、プロジェクトが対象とする .NET Framework のバージョンを設定します。Visual Studio は、次の条件を使用して、.NET Framework のバージョンを特定します。

  • .NET Framework 3.0 アセンブリへの参照が存在する場合、Web プロジェクトは、.NET Framework 3.0 以上を対象にしている (他の条件によっては、以降のバージョンを対象にしている場合がある)。

  • Web.config ファイルの compilers セクションが C# または Visual Basic のコンパイラ バージョン "v3.5" にマップされている場合、Web サイトは .NET Framework 3.5 を対象にしている。

  • .NET Framework 3.5 アセンブリへの参照がある場合、Web サイトは .NET Framework 3.5 を対象としている。

  • Web サイトが以上の条件を満たさない場合、Web サイトは .NET Framework version 2.0 を対象としている。

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

    プロジェクトが Visual Studio で以前に開かれている場合、または作成されている場合、対象のバージョン番号はプロジェクトに既に保存されています。この場合、Visual Studio は保存されているバージョン番号を使用します。保存されているバージョン番号と、参照およびコンパイラから検出されたバージョン番号の間の不一致は検出されません。

プロジェクトのテンプレートの選択

Visual Studio には、現在対象としている .NET Framework のバージョンに対応するプロジェクト テンプレートしか表示されません。新しい Web サイトを作成すると、Visual Studio は .NET Framework の最も高いバージョン番号を自動的に対象とし、最新の機能にアクセスできるようにします。または、プロジェクトを作成するときに対象とするバージョンを選択できます。

新しい Web サイトの Web.config ファイルの既定の内容は、.NET Framework の選択したバージョンに基づきます。既定の参照アセンブリは assemblies セクションで指定され、コンパイラのバージョンは compilers セクションで指定されます。

ツールボックスからのオブジェクトの追加

Visual Studio は、現在対象としている .NET Framework のバージョンに対応していないツールボックス内の項目を無効にします。ツールボックスのマルチ ターゲット機能の動作は、.NET Framework の特定バージョンのコンポーネントを、そのバージョンまたはそれ以降のバージョンのプロジェクトで使用できることを前提としています。たとえば、.NET Framework 2.0 コントロールは .NET Framework 2.0、.NET Framework version 3.0、または .NET Framework version 3.5 Service Pack 1 で使用できます。

新規項目の追加

Visual Studio は、現在対象になっている .NET Framework のバージョンに基づいて、[新しい項目の追加] ダイアログ ボックスに表示される項目をフィルタ処理します。

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

既存の項目をプロジェクトに追加する場合、Visual Studio は、その項目に関する参照およびインポートが現在対象になっている .NET Framework のバージョンと一致しているかどうか検証しません。警告は生成されません。ただし、それらの参照がプロジェクトで解決できない場合、プロジェクトをビルドして実行するときにエラーが表示されます。

アセンブリ参照の追加

[参照の追加] ダイアログ ボックスを開くと、Visual Studio は、現在対象になっている .NET Framework のバージョンをチェックし、そのバージョンで利用できるアセンブリのみ列挙します。対象となっている .NET Framework の以降のバージョン用のアセンブリは表示されますが無効化されます。

[参照の追加] ダイアログ ボックスのタイトルには、現在対象となっている .NET Framework のバージョンが表示されます。このダイアログ ボックスには各アセンブリの .NET Framework のバージョンが表示されるので、参照を追加するには .NET Framework のどのバージョンが必要か判断できます。また、[参照の追加] ダイアログ ボックスでは、使用できないアセンブリの上にマウス ポインタを合わせると、ツールヒントとしてアセンブリについての情報が表示されます。

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

([参照の追加] ダイアログ ボックスを使用しないで) システム参照を手動で追加した場合、Visual Studio は参照をチェックしません。現在対象となっている .NET Framework のバージョンに属さないアセンブリ参照に関する警告がデザイン時またはビルド時に表示されます。

サービス参照の追加

.NET Framework 3.5 を対象とする Web サイト、および .NET Framework 3.0 または .NET Framework 3.5 を対象とする Web アプリケーション プロジェクトでのみ [サービス参照の追加] ダイアログ ボックスを使用できます。.NET Framework 3.0 を対象とする Web サイトへサービス参照を追加する場合、クラス ライブラリ プロジェクトへのサービス参照を追加できます。その後、Web サイト プロジェクトからクラス ライブラリ プロジェクトを参照できます。

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

Visual Web Developer では、クラス ライブラリをプロジェクトに追加できません。

IntelliSense の使用方法

Visual Studio 2008 の言語サービスは .NET Framework の特定バージョンを対象にしません。したがって、C# および Visual Basic の最新バージョン用の IntelliSense がエディタでは常に提供されます。

Web プロジェクトでは、プロジェクトが対象としている .NET Framework のバージョンに関係なく、すべての .NET Framework のバージョン用の IntelliSense が表示されます。.NET Framework version 2.0 または .NET Framework 3.0 を対象にすると、.NET Framework version 3.5 の機能を参照するコードはコンパイル エラーになります。

JScript IntelliSense は、プロジェクトが対象とする .NET Framework のバージョンには依存しません。

プロジェクトの配置

Visual Studio 2008 の発行ツールおよび Web のコピー ツールは、.NET Framework の特定バージョンを対象としません。Visual Studio は、リモート サーバー上で実行されている .NET Framework のバージョンはチェックしません。プロジェクトが対象外としている、.NET Framework の以前のバージョンを含む対象サーバーにプロジェクトを発行する場合、これらのツールでは通知できません。この場合、.NET Framework の新しいバージョンを対象とするプロジェクトは実行されません。

ページのトップへ

参照

概念

ASP.NET および Web 開発の新機能

参照

ページのトップへ

その他の技術情報

特定の .NET Framework を対象にする