一尘不染

引用.NET 4.0项目中的.NET 2.0混合模式程序集,需要什么“附加配置”?

c#

我有一个项目,我想在其中使用某些.NET
4.0功能,但核心要求是我可以使用针对2.X编译的System.Data.SQLite框架。我看到有可能提及此问题,例如此处接受的答案,但我看不出如何实际实现。

当我尝试在引用2.X程序集的同时运行4.0项目时,我得到:

混合模式程序集是针对运行时的版本“ v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时中加载。

需要什么“附加配置”?


阅读 279

收藏
2020-05-19

共1个答案

一尘不染

为了使用CLR 2.0 混合模式程序集 ,您需要修改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 2程序集,而无需在中指定app.config

2020-05-19