混合模式程序集已构建,升级到 windows 10 后

Mixed mode assembly is built, after upgrade to windows 10

我使用小型应用程序,它在 windows 8.1 上工作正常,在我升级到 windows 10 之后 运行 应用程序我得到未处理的异常

System.IO.FileLoadException: Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

我可以在不重新编译的情况下对它做些什么吗?我不再有源代码。也许编辑 MSIL,SetUp old 运行time...??

感谢帮助

主要问题是 Windows 8.x 仍然接受 .Net Framework 2.0 兼容性(我猜是出于 ASP 的目的)但 Windows 10 拒绝它。

我猜你不会有任何解决方案,除非你必须重新编译你的应用程序添加参考库并设置为放在你的应用程序文件夹中。

您应该不需要重新编译应用程序。将 yourapp.exe.config 添加到具有以下内容的同一文件夹就足够了:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
    </startup>
</configuration>

或添加到现有配置。

如果这不起作用并且您没有源代码,您可以通过

将应用程序反编译为 IL 代码
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools>ildasm.exe D:\Temp\yourapp.exe /output:D:\Temp\yourapp\yourapp.il

在IL中修复runtime版本然后编译

C:\Windows\Microsoft.NET\Framework\v4.0.30319>ilasm.exe D:\Temp\yourapp\yourapp.il /output:D:\Temp\yourappPatch.exe