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

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

我一直在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,但似乎不起作用。除了创建新应用程序,我还能做些什么吗?

您应该能够通过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>

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