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