我想在我的.NET 4.0 DLL 中加载一个.NET 2.0的DLL。我搜索了解决方案并发现了“useLegacyV2RuntimeActivationPolicy”属性,我可以将其添加到我的app.config中,就像这个网址中所示:Mixed mode assembly is built against version 'v1.1.4322'。
但问题在于,在我的情况下,我正在尝试在我的4.0 DLL而不是4.0 exe中使用.net2.0 dll。原因是这个4.0 dll会作为自动化add-in在Excel中使用。
目前,当我从Excel访问我的.NET 4.0 API(它为功能加载2.0 dll)时,我得到“无法在4.0运行时中加载混合模式2.0 dll”的错误,这是可以理解的,因为COM已经加载了4.0 CLR,因此无法加载2.0 dll。
不知何故,我需要使我的4.0 DLL加载2.0运行时。我尝试向4.0 dll的app.config添加配置文件,但我想只有.exe默认读取app.config以加载clr。 这就是我在4.0 dll项目的app.config中拥有的内容,但没有用处。
但问题在于,在我的情况下,我正在尝试在我的4.0 DLL而不是4.0 exe中使用.net2.0 dll。原因是这个4.0 dll会作为自动化add-in在Excel中使用。
目前,当我从Excel访问我的.NET 4.0 API(它为功能加载2.0 dll)时,我得到“无法在4.0运行时中加载混合模式2.0 dll”的错误,这是可以理解的,因为COM已经加载了4.0 CLR,因此无法加载2.0 dll。
不知何故,我需要使我的4.0 DLL加载2.0运行时。我尝试向4.0 dll的app.config添加配置文件,但我想只有.exe默认读取app.config以加载clr。 这就是我在4.0 dll项目的app.config中拥有的内容,但没有用处。
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
我该如何解决这个问题,使我的.NET 4.0 DLL能够使用.NET 2.0 DLL?
谢谢, Mani