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

このトピックは、参照の問題が原因で発生する可能性のある MSBuild エラーと、そのエラーの解決方法について説明します。This topic describes MSBuild errors that might occur because of reference issues and how you can resolve those errors.

異なるバージョンの .NET Framework を対象とするプロジェクトまたはアセンブリを参照したYou Have Referenced a Project or Assembly That Targets a Different Version of the .NET Framework

異なるバージョンの .NET Framework.NET Framework を対象にしたプロジェクトまたはアセンブリを参照するアプリケーションを作成できます。You can create applications that reference projects or assemblies that target different versions of the .NET Framework.NET Framework. たとえば、.NET Framework 4.NET Framework 4 のクライアント プロファイルを対象とするが、.NET Framework 2.0 を対象とするアセンブリを参照するアプリケーションを作成できます。For example, you can create an application that targets the client profile for the .NET Framework 4.NET Framework 4 but references an assembly that targets the .NET Framework 2.0. ただし、以前のバージョンの .NET Framework.NET Framework を対象とするプロジェクトを作成した場合、そのプロジェクトでは、.NET Framework 4.NET Framework 4 のクライアント プロファイルまたは .NET Framework 4.NET Framework 4 自体を対象とするプロジェクトまたはアセンブリに参照を設定することはできません。However, if you create a project that targets an earlier version of the .NET Framework.NET Framework, you can't set a reference in that project to a project or assembly that targets the client profile for the .NET Framework 4.NET Framework 4 or the .NET Framework 4.NET Framework 4 itself. エラーを解決するには、アプリケーションで参照されるプロジェクトまたはアセンブリが対象とするプロファイルと互換性のあるプロファイルがアプリケーションの対象となるようにします。To resolve the error, make sure that your application targets a profile or profiles that are compatible with the profile that's targeted by the projects or assemblies that your application references.

異なるバージョンの .NET Framework にプロジェクトの対象を再設定したYou Have Re-Targeted a Project to a Different Version of the .NET Framework

アプリケーションの .NET Framework.NET Framework のターゲット バージョンを変更する場合、Visual Studio で変更される参照もあれば、手動による更新が必要な参照もあります。If you change the target version of the .NET Framework.NET Framework for your application, Visual Studio changes some of the references, but you may have to update some references manually. たとえば、.NET Framework 3.5 Service Pack 1.NET Framework 3.5 Service Pack 1 を対象とするようにアプリケーションを変更する際に、そのアプリケーションのリソースまたは設定が .NET Framework 4.NET Framework 4 のクライアント プロファイルに依存している場合は、前述のエラーのいずれかが発生する可能性があります。For example, one of the previously mentioned errors might occur if you change an application to target the .NET Framework 3.5 Service Pack 1.NET Framework 3.5 Service Pack 1 and that application has resources or settings that rely on the client profile for the .NET Framework 4.NET Framework 4.

このようなアプリケーションの設定に対処するには、ソリューション エクスプローラーを開き、[すべてのファイルを表示] を選択してから、Visual Studio の XML エディターで app.config ファイルを編集します。To work around application settings, open Solution Explorer, choose Show All Files, and then edit the app.config file in the XML editor of Visual Studio. .NET Framework の適切なバージョンと一致するように、設定されているバージョンを変更します。Change the version in the settings to match the appropriate version of the .NET Framework. たとえば、バージョンの設定を 4.0.0.0 から 2.0.0.0 に変更できます。For example, you can change the version setting from 4.0.0.0 to 2.0.0.0. 同様に、リソースを追加したアプリケーションでは、ソリューション エクスプローラーを開き、[すべてのファイルを表示] ボタンを選択し、[マイ プロジェクト] (Visual Basic の場合) または [プロパティ] (C# の場合) を展開してから Visual Studio の XML エディターで Resources.resx ファイルを編集します。Similarly, for an application that has added resources, open Solution Explorer, choose the Show All Files button, expand My Project (Visual Basic) or Properties (C#), and then edit the Resources.resx file in the XML editor of Visual Studio. バージョンの設定を 4.0.0.0 から 2.0.0.0 に変更します。Change the version setting from 4.0.0.0 to 2.0.0.0.

アプリケーションにアイコンやビットマップなどのリソースまたはデータ接続文字列などの設定が含まれている場合は、プロジェクト デザイナー[設定] ページですべての項目を削除してから、必要な設定を再度追加することで、エラーを解決することもできます。If your application has resources such as icons or bitmaps or settings such as data connection strings, you can also resolve the error by removing all the items on the Settings page of the Project Designer and then re-adding the required settings.

異なるバージョンの .NET Framework にプロジェクトの対象を再設定したが、参照が解決されないYou Have Re-Targeted a Project to a Different Version of the .NET Framework and References Do Not Resolve

異なるバージョンの .NET Framework.NET Framework にプロジェクトの対象を再設定した場合に、参照が正しく解決されないことがあります。If you retarget a project to a different version of the .NET Framework.NET Framework, your references may not resolve properly in some cases. 多くの場合、アセンブリへの明示的な完全修飾参照によってこの問題が発生しますが、解決されない参照を削除してからプロジェクトに追加し直すことで解決できます。Explicit fully qualified references to assemblies often cause this issue, but you can resolve it by removing the references that do not resolve and then adding them back to the project. あるいは、参照を置き換えるようにプロジェクト ファイルを編集することもできます。As an alternative, you can edit the project file to replace the references. まず、以下のフォームの参照を削除します。First, you remove references of the following form:

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

次に、以下の単純なフォームに置き換えます。Then you replace them with the simple form:

<Reference Include="System.ServiceModel" />  

注意

プロジェクトを閉じて再び開いてから、リビルドし、すべての参照が正しく解決されるようにする必要もあります。After you close and reopen your project, you should also rebuild it to ensure that all references resolve correctly.

関連項目See Also

方法: .NET Framework のバージョンをターゲットにする How to: Target a Version of the .NET Framework
.NET Framework Client Profile .NET Framework Client Profile
対象となる特定の .NET Framework バージョンの指定 Targeting a Specific .NET Framework Version
マルチ ターゲットMultitargeting