我一直在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,但这似乎不起作用。有什么我可以做的其他创建新的应用程序吗?
答案 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)
打开项目的属性。然后选择资源。删除所有资源图像并再次插入。现在编译它。你的项目现在正在运行.. :))