【问题标题】:Downgrade an application from .net 4.0 to 3.5将应用程序从 .net 4.0 降级到 3.5
【发布时间】:2010-07-05 19:46:06
【问题描述】:

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

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    使用 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>
    

    【讨论】:

      【解决方案2】:

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

      只需将useLegacyV2RuntimeActivationPolicy="true" 标志添加到您的appConfig in the startup section。这会导致 .NET 4 运行时处理较旧的混合模式程序集。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-08-10
          • 2012-07-03
          • 2011-08-31
          • 1970-01-01
          • 1970-01-01
          • 2018-06-18
          • 1970-01-01
          相关资源
          最近更新 更多