我想在.Net4.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随后在Excel中用作自动化插件。
目前,当我从Excel处理我的.NET 4.0 API(为一个功能加载2.0 dll)时,我得到'混合模式2.0 dll无法在4.0运行时加载'这是可以理解的,因为COM加载了4.0 CLR因此无法加载2.0 dll。
不知何故,我需要让我的4.0 DLL加载2.0运行时。我尝试将app.config添加到4.0 dll但我猜只有.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?
谢谢, 摩尼
答案 0 :(得分:4)
答案已经由Hans Passant完成,但他已发表评论。因此,在这里单独回答这个问题。
配置必须被称为excel.exe.config,并且应该与excel.exe位于同一个office目录中,以使此方案正常工作。