C# 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集

问题

混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

解决方法

在生成的debug文件中找到文件名字为“工程名.exe.config”的文件。
将内容改添。

原来的代码:
<?xml version="1.0"?>
<configuration>
    <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
  </startup>
</configuration>


----------
改后的代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

通过代码可以发现,多加了一个配置节。
<startup useLegacyV2RuntimeActivationPolicy="true">
这段配置节的意思是:启用 .NET Framework 2.0 版 运行时激活策略,这是通过使用最新支持的运行时加载所有程序集。
然后需要在startup配置节的字节中添加 supportedRuntime配置节,并指定为“v4.0”。
问题就出现在以前用的.NET版本和现在用的不不同。需要添加配置使他们兼容。

展开阅读全文

没有更多推荐了,返回首页