我有一个在使用 .Net framework 3.5 时可以完美运行的程序集,但是在 4 中使用它时会出现无法加载程序集的错误。有谁知道这个问题的解决方案?(无论如何我都不能更改程序集或更改项目目标框架,因为这会删除应用程序的目的)编程代码是 c#。
基本上:我正在.Net 4 框架中创建一个应用程序,但程序集与它不兼容。
以下错误:具有混合模式的程序集是使用运行时版本 v2.0.50727 创建的,如果没有运行时版本 4.0 中的额外配置信息,则无法加载。
最好的方法可能是在 Visual Studio 2010 中为 .NET 4.0 重新编译您的类库(即打开项目、转换它并更改目标框架。)
如果您不能或不会这样做,那么您可以尝试将以下内容添加到您的 .NET 4.0 应用程序的 app.config 文件中:
在 app.config 中添加此配置。
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
关键是 useLegacyV2RuntimeActivationPolicy 标志。这会导致 CLR 使用最新版本 (4.0) 来加载您的混合模式程序集。没有这个,它就行不通。
请注意,这只对混合模式 (C++/CLI) 程序集很重要。您可以加载所有托管的 CLR 3.5 程序集,而无需在 app.config 中指定。