将应用程序从.net 4.0降级到3.5

时间:2010-07-05 19:46:07

标签: c# .net

我一直在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 个答案:

答案 0 :(得分:8)

使用XML编辑器而不是资源编辑器打开.resx文件,然后搜索System.Windows.Forms, Version=4.0.0.0。这个字符串应该有2个实例。将4.0.0.0替换为2.0.0.0并保存文件。您的资源现在应该可以正常工作。

请注意,您还可以返回到.NET 4并尝试将以下内容添加到App.config中,以允许旧程序集在新运行时运行:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

答案 1 :(得分:5)

您应该可以通过app.Config中的配置设置来完成这项工作。

只需将useLegacyV2RuntimeActivationPolicy="true"标记添加到appConfig in the startup section即可。这会导致.NET 4运行时处理旧的混合模式程序集。

答案 2 :(得分:2)

打开项目的属性。然后选择资源。删除所有资源图像并再次插入。现在编译它。你的项目现在正在运行.. :))