.NET Framework を対象とするエラーのトラブルシューティング

Visual Studio では、.NET Framework 4 Client Profile と呼ばれる、軽量の .NET Framework ランタイムを配布できます。これは、.NET Framework 4 に含まれているバイナリのサブセットだけを含むランタイムです。.NET Framework 4 Client Profile を使用すると、アプリケーションのユーザーに小規模な .NET Framework ライブラリを配布でき、ユーザーは、完全な .NET Framework 4 がシステムにインストールされていなくてもアプリケーションを実行できます。

アプリケーションが特定のプロファイルを対象としている場合、そのプロファイルの一部ではないアセンブリを参照しようとすると、エラーが発生します。 一般的なエラーは、次のとおりです。

  • 型または名前空間名 "name" は名前空間 "namespace" に存在しません。 アセンブリ参照が不足しています。

  • 型 "typename" が定義されていません。

  • アセンブリ "assembly" を解決できませんでした。 このアセンブリは、"profile" プロファイルの一部として一覧表示されていません。

これらのエラーは、さまさまな操作が原因で発生します。 このトピックでは、エラーの原因となった可能性のある操作、および問題の解決方法について説明します。

.NET Framework 4 Client Profile の詳細については、「.NET Framework Client Profile」および「方法: 特定の .NET Framework のバージョンまたはプロファイルを対象として指定する」を参照してください。

クライアント プロファイルに含まれていないアセンブリを参照した

アプリケーションが、.NET Framework 4 Client Profile には含まれていない、アセンブリまたは依存アセンブリに含まれている機能を参照しようとした場合、ランタイム エラー メッセージが表示されることがあります (参照される機能が置かれている場所によって、メッセージの正確な内容は異なります)。このようなエラーを回避するには、正しくないアセンブリ参照をプロジェクトから削除するか、プロジェクトの対象を .NET Framework Version 4 のサブセット ライブラリではなく完全な .NET Framework 4 Client Profile にします。

異なるバージョンの .NET Framework を対象とするプロジェクトまたはアセンブリを参照した

異なるバージョンの .NET Framework を対象とするプロジェクトまたはアセンブリを参照するアプリケーションを作成できます。 たとえば、.NET Framework 4 Client Profile を対象とするアプリケーションを作成した場合、そのプロジェクトで .NET Framework version 2.0 を対象とするアセンブリを参照できます。 ただし、旧バージョンの .NET Framework を対象とするプロジェクトを作成した場合、そのプロジェクトでは、.NET Framework 4 Client Profile または .NET Framework 4 を対象とするプロジェクトまたはアセンブリを参照することはできません。 このエラーを解消するには、アプリケーションが対象とするプロファイルと、アプリケーションで参照されるプロジェクトまたはアセンブリが対象とするプロファイルとの間の互換性を確保します。

異なるバージョンの .NET Framework にプロジェクトの対象を再設定した

アプリケーションが対象とするバージョンの .NET Framework を変更した場合、Visual Studio ではいくつかの参照が変更されます。 ただし、手動での更新も実行する必要があります。 たとえば、.NET Framework 4 Client Profile に依存するリソースまたは設定があるアプリケーションを作成した後、そのアプリケーションの対象を .NET Framework 3.5 SP1 に変更した場合、前に示したエラーのいずれかが表示されます。

アプリケーション設定用の回避策として、ソリューション エクスプローラーで、[すべてのファイルを表示] をクリックし、Visual Studio XML エディターで app.config ファイルを編集します。 設定内のバージョンを、.NET Framework のバージョンと一致するように変更します。 たとえば、バージョン設定を 4.0.0.0 から 2.0.0.0 に変更できます。 リソースを追加したアプリケーションと同じように、ソリューション エクスプローラーで、[すべてのファイルを表示] をクリックし、[My Project] (Visual Basic の場合) または [プロパティ] (C# の場合) を展開して、Visual Studio XML エディターで Resources.resx ファイルを編集します。 バージョン設定を 4.0.0.0 から 2.0.0.0 に変更します。

アプリケーションにアイコンやビットマップなどのリソースが含まれている場合、またはデータ接続文字列などが設定されている場合は、プロジェクト デザイナー[設定] ページですべての項目を削除した後、必要な設定を再度追加することで、問題を解決できます。 詳細については、「[設定] ページ (プロジェクト デザイナー)」を参照してください。

異なるバージョンの .NET Framework にプロジェクトの対象を再設定したが、参照が解決されない

異なるバージョンの .NET Framework にプロジェクトの対象を再設定した場合、参照が適切に解決されないことがあります。この問題の一般的な原因は、アセンブリへの明示的な完全修飾参照です。 この問題を修正するには、解決されない参照を削除し、それらの参照を再度プロジェクトに追加します。 または、プロジェクト ファイルを編集して、次の形式の参照を削除し、

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

次の簡単な形式に置き換えます。

<Reference Include="System.ServiceModel" />

注意

プロジェクトをいったん閉じて開き直した後で再ビルドして、すべての参照が正しく解決されるようにしてください。

参照

処理手順

方法: 特定の .NET Framework のバージョンまたはプロファイルを対象として指定する

概念

.NET Framework Client Profile

その他の技術情報

対象となる特定の .NET Framework のバージョンまたはプロファイルの指定