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

我一直在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,但这似乎不起作用。 有什么我可以做的其他创建一个新的应用程序?

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

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

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

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

      

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