我有一个项目,我想在其中使用某些.NET 4.0功能,但核心要求是我可以使用针对2.X编译的System.Data.SQLite框架。我看到有可能提及此问题,例如此处接受的答案,但我看不出如何实际实现。
当我尝试在引用2.X程序集的同时运行4.0项目时,我得到:
混合模式程序集是针对运行时的版本“ v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时中加载。
需要什么“附加配置”?
为了使用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)来加载您的混合模式程序集。没有这个,它将无法工作。
useLegacyV2RuntimeActivationPolicy
请注意,这仅对混合模式(C ++ / CLI)程序集有效。您可以加载所有托管CLR 2程序集,而无需在中指定app.config。
app.config