I am trying to add a reference to a .Net 2.0 DLL in a WPF application that is targeted to the .Net 4 Framework.
I added <startup useLegacyV2RuntimeActivationPolicy="true">
to the app.config file. The WPF app builds fine, but gets a BadImageFormatException at Runtime when trying to access the .Net 2.0 DLL.
"An attempt was made to load a program with an incorrect format"
This works with a new test WPF project, but does not work on my app. My app uses Entity Framework and MEF. Could these technologies be causing the issue?
Any ideas?
Edit: Resolved
According to the comment by Alois below, I had my main app targeted to 'Any CPU' and the DLL was targeted to 32-bit.
<startup useLegacyV2RuntimeActivationPolicy="true">
was not required
When you have to use the useLegacyV2RuntimeActivationPolicy attribute then you are working with a mixed-mode assembly that was written in C++/CLI and targeting version 2.0.50727 of the CLR. Such an assembly contains both managed code and native machine code. That machine code is 32-bit in your case, you can't run it in a 64-bit process. Which is what the exception means. Setting the Platform target to x86 in your EXE project is required.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With