我正在尝试在针对.Net 4 Framework的WPF应用程序中添加对.Net 2.0 DLL的引用。
我在app.config文件中添加了<startup useLegacyV2RuntimeActivationPolicy="true">
。 WPF应用程序构建正常,但在尝试访问.Net 2.0 DLL时在运行时获取BadImageFormatException。
“试图加载格式不正确的程序”
这适用于新的测试WPF项目,但不适用于我的应用程序。我的应用程序使用Entity Framework和MEF。这些技术会引起这个问题吗?
有什么想法吗?
修改:已解决
根据Alois的评论,我的主要应用程序针对“任何CPU”,DLL的目标是32位。
<startup useLegacyV2RuntimeActivationPolicy="true">
不是必需的
答案 0 :(得分:2)
当您必须使用useLegacyV2RuntimeActivationPolicy属性时,您将使用以C ++ / CLI编写并定位到CLR版本2.0.50727的混合模式程序集。这样的程序集包含托管代码和本机机器代码。在您的情况下,该机器代码是32位,您无法在64位进程中运行它。这是异常的意思。需要在EXE项目中将平台目标设置为x86。