【问题标题】:Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime混合模式程序集是针对运行时版本“v2.0.50727”构建的,无法在 4.0 运行时中加载
【发布时间】:2012-08-11 13:34:54
【问题描述】:

在命令行执行中运行可执行文件后出现此异常:

“混合模式程序集是针对运行时版本‘v2.0.50727’构建的,如果没有额外的配置信息,无法在 4.0 运行时中加载。”

在网上搜索了这个问题后,我发现其中一种方法是配置 App.Config 文件。 这在 VS2010 中运行良好,但在命令模式下仍会产生相同的错误。

那么有没有办法通过使用命令行来解决这个问题,因为生成更新版本的 .dll 是不可能的。

谢谢!

【问题讨论】:

  • 你有汇编的源代码吗?
  • 否,但它是 Matlab 编译的 dll。这一行中抛出的异常:double[,] values = (double[,])MWNA.ToArray(MWArrayComponent.Real);
  • MWNA 对象就是这个程序集的一个实例。
  • 您是否将您的程序集编译为 .NET 4(引用 Matlab 程序集的程序集)?

标签: c# visual-studio-2010 command-line


【解决方案1】:

确保您已配置 App.config 和 ProgramName.exe.config 文件。

例如:

<configuration>
    <startup>
      <supportedRuntime version="v2.0.50727"/>
   </startup>
 </configuration>

【讨论】:

【解决方案2】:

你也可以试试 useLegacyV2RuntimeActivationPolicy="true"

   <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>

【讨论】:

  • 我面临同样的问题,但问题是第三方应用程序正在使用接口与我们的应用程序通信,并且该接口正在调用 4.0 dll。 4.0 dll 指的是在 v2.0.50727 中内置的 dll,我们没有它的代码。我在实例化 v2.0.50727 dll 时遇到了异常。上面的方法都试过了,没用,有什么建议吗?
  • 也不起作用吗?
【解决方案3】:

另一种解决方案是重新编译所有依赖于 .NET 4.0 的混合 (C++/CLI) 程序集。如果这些程序集是第三方,通常是不可能的。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 2012-08-03
    • 2013-01-08
    • 2016-05-08
    • 2015-05-28
    • 2018-03-15
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多