.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 版本或配置文件

MSBuild 多定向概述