代码之家  ›  专栏  ›  技术社区  ›  Serge

将应用程序从.NET 4.0降级为3.5

  •  10
  • Serge  · 技术社区  · 14 年前

    我在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 回复  |  直到 12 年前
        1
  •  5
  •   Reed Copsey    14 年前

    您应该能够通过app.config中的配置设置来实现这一点。

    只需添加 useLegacyV2RuntimeActivationPolicy="true" 给你的旗帜 appConfig in the startup section . 这将导致.NET 4运行时处理旧的混合模式程序集。

        2
  •  8
  •   Julien Lebosquain    14 年前

    用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>
    
        3
  •  2
  •   Ravish    12 年前

    打开项目的属性。然后选择资源。删除所有资源图像并重新插入。现在编译它。你的项目正在进行中……:)