C# 将应用程序从.net 4.0降级到3.5
我一直在VS2010中开发一个应用程序,并将其编译为.NET4.0作为目标框架。将库集成到我的应用程序中后,我在尝试编译时收到以下错误消息: 混合模式程序集是根据运行时版本“v1.1.4322”构建的,如果没有其他配置信息,则无法在4.0运行时中加载 该库在.NET 3.5下运行良好,但当我将目标framework更改为.NET 3.5时,我的所有.resx文件都出现以下错误: 错误1对象引用未设置为对象的实例C# 将应用程序从.net 4.0降级到3.5,c#,.net,C#,.net,我一直在VS2010中开发一个应用程序,并将其编译为.NET4.0作为目标框架。将库集成到我的应用程序中后,我在尝试编译时收到以下错误消息: 混合模式程序集是根据运行时版本“v1.1.4322”构建的,如果没有其他配置信息,则无法在4.0运行时中加载 该库在.NET 3.5下运行良好,但当我将目标framework更改为.NET 3.5时,我的所有.resx文件都出现以下错误: 错误1对象引用未设置为对象的实例 我尝试了ctrl-h Version=4.0.0.0到Version=3.5.0.0
我尝试了ctrl-h Version=4.0.0.0到Version=3.5.0.0,但似乎不起作用。除了创建新应用程序,我还能做些什么吗?您应该能够通过app.Config中的配置设置来实现这一点
只需将
useLegacyV2RuntimeActivationPolicy=“true”
标志添加到您的应用程序中。这会导致.NET 4运行时处理较旧的混合模式程序集。使用XML编辑器而不是资源编辑器打开.resx文件,然后搜索System.Windows.Forms,Version=4.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>
打开项目的属性。然后选择资源。删除所有资源映像并再次插入它们。现在编译它。您的项目正在运行中:)