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

このトピックは、参照の問題が原因で発生する可能性のある MSBuild エラーと、そのエラーの解決方法について説明します。

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

異なるバージョンの .NET Framework を対象にしたプロジェクトまたはアセンブリを参照するアプリケーションを作成できます。 たとえば、.NET Framework 4 のクライアント プロファイルを対象とするが、.NET Framework 2.0 を対象とするアセンブリを参照するアプリケーションを作成できます。 ただし、以前のバージョンの .NET Framework を対象とするプロジェクトを作成した場合、そのプロジェクトでは、.NET Framework 4 のクライアント プロファイルまたは .NET Framework 4 自体を対象とするプロジェクトまたはアセンブリに参照を設定することはできません。 エラーを解決するには、アプリケーションで参照されるプロジェクトまたはアセンブリが対象とするプロファイルと互換性のあるプロファイルがアプリケーションの対象となるようにします。

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

アプリケーションの .NET Framework のターゲット バージョンを変更する場合、Visual Studio で変更される参照もあれば、手動による更新が必要な参照もあります。 たとえば、.NET Framework 3.5 Service Pack 1 を対象とするようにアプリケーションを変更する際に、そのアプリケーションのリソースまたは設定が .NET Framework 4 のクライアント プロファイルに依存している場合は、前述のエラーのいずれかが発生する可能性があります。

このようなアプリケーションの設定に対処するには、ソリューション エクスプローラーを開き、[すべてのファイルを表示] を選択してから、Visual Studio の XML エディターで app.config ファイルを編集します。 .NET Framework の適切なバージョンと一致するように、設定されているバージョンを変更します。 たとえば、バージョンの設定を 4.0.0.0 から 2.0.0.0 に変更できます。 同様に、リソースを追加したアプリケーションでは、ソリューション エクスプローラーを開き、[すべてのファイルを表示] ボタンを選択し、[マイ プロジェクト] (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 バージョンの指定
マルチ ターゲット