3

我有一个在使用 .Net framework 3.5 时可以完美运行的程序集,但是在 4 中使用它时会出现无法加载程序集的错误。有谁知道这个问题的解决方案?(无论如何我都不能更改程序集或更改项目目标框架,因为这会删除应用程序的目的)编程代码是 c#。

基本上:我正在.Net 4 框架中创建一个应用程序,但程序集与它不兼容。

以下错误:具有混合模式的程序集是使用运行时版本 v2.0.50727 创建的,如果没有运行时版本 4.0 中的额外配置信息,则无法加载。

4

1 回答 1

6

最好的方法可能是在 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 中指定。

于 2012-04-27T08:27:42.080 回答