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

时间:2011-03-22 19:33:37

标签: c# .net-4.0 clr

我正在尝试在针对.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">不是必需的

1 个答案:

答案 0 :(得分:2)

当您必须使用useLegacyV2RuntimeActivationPolicy属性时,您将使用以C ++ / CLI编写并定位到CLR版本2.0.50727的混合模式程序集。这样的程序集包含托管代码和本机机器代码。在您的情况下,该机器代码是32位,您无法在64位进程中运行它。这是异常的意思。需要在EXE项目中将平台目标设置为x86。

相关问题