问题
混合模式程序集是针对“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版本和现在用的不不同。需要添加配置使他们兼容。