将一个应用程序从.NET 4.0降级至3.5版本。

10

我一直在VS2010中开发应用程序,并将其编译为.NET 4.0作为目标框架。在将库集成到我的应用程序后,当我尝试编译时,会出现以下错误信息:

混合模式程序集是针对版本“v1.1.4322”的运行时构建的,在没有附加配置信息的情况下无法在4.0运行时中加载。

该库在.NET 3.5下工作良好,但当我将目标框架更改为.NET 3.5时,所有.resx文件都会出现以下错误:

错误1:对象引用未设置为对象的实例。

我尝试了ctrl-h Version=4.0.0.0到Version=3.5.0.0,但似乎不起作用。除了创建一个新应用程序,我还能做些什么吗?

3个回答

8
请使用XML编辑器打开.resx文件,而不是资源编辑器,并搜索。这个字符串应该有两个实例。将4.0.0.0替换为2.0.0.0并保存文件。现在您的资源应该正常工作。
请注意,您也可以返回到.NET 4并尝试将以下内容添加到App.config以允许旧程序集在新运行时上运行:
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

5

您可以通过在app.Config中进行配置设置来使其正常工作。

只需在启动部分的appConfig中添加useLegacyV2RuntimeActivationPolicy="true"标志即可。这将导致.NET 4运行时处理旧的混合模式程序集。


2

打开项目属性,然后选择资源。删除所有资源图像并重新插入它们。现在编译它。您的项目现在可以正常工作了.. :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接