在.net 4.0 wpf应用程序中使用.Net 2.0 dll

Mik*_*ike 8 c# clr .net-4.0

我试图在针对.Net 4框架的WPF应用程序中添加对.Net 2.0 DLL的引用.

我添加<startup useLegacyV2RuntimeActivationPolicy="true">到app.config文件中.WPF应用程序构建正常,但在尝试访问.Net 2.0 DLL时在运行时获取BadImageFormatException.

"试图加载格式不正确的程序"

这适用于新的测试WPF项目,但不适用于我的应用程序.我的应用程序使用Entity Framework和MEF.这些技术会导致这个问题吗?

有任何想法吗?

编辑:已解决

根据下面的Alois的评论,我的主要应用程序针对"任何CPU",DLL的目标是32位.

<startup useLegacyV2RuntimeActivationPolicy="true"> 不是必需的

Han*_*ant 2

当您必须使用 useLegacyV2RuntimeActivationPolicy 属性时,您正在使用以 C++/CLI 编写且面向 CLR 版本 2.0.50727 的混合模式程序集。这样的程序集既包含托管代码又包含本机机器代码。在你的情况下,机器代码是 32 位的,你不能在 64 位进程中运行它。这就是异常的含义。需要在 EXE 项目中将平台目标设置为 x86。