views:

21

answers:

1

Hello All,

I've run into a problem after installing the 64 bit Oracle client onto my Win 7 x64 dev box. I have installed and configured the oracle client and added a reference to it in my library project and it runs without problems when deployed to a Win 2008 R2 server; however I cannot run it in the built-in VS2010 debugger.

The code throws a BadImageFormatException when the .open() statement is called on the connection object.

I figured out that if I will run it in IIS and move the application out of the default application pool, the error goes away for some reason.

However, I can't do this when I'm running the test project (MSTest) and I the result is that I cannot run unit tests against this code. Yes, I can mock it, but I would really like to understand and eliminate this error. There are several cases where I would like to test against some test data in the database.

Any suggestions or links would be greatly appreciated.

Thanks,

Trey Carroll

A: 

Here's the answer according to senior dev in my group VS is a 32 bit application so running things in Casini is of course from a 32bit context. When the 32bit Web Appattempts to use the 64bit Oracle Client, it causes the BadImageFormatException. (Apparently deploying to IIS is allowing the Web App to run as a 64bit app and eliminating the conflict.)

So here's the question: How do I run MSTEST unit tests from VS when there are dependencies on 64bit dll's? I could obtain 32bit versions of these, but how would I tell my application to use the 32bit versions for testing/Casini debugging and the 64bit versions otherwise?

Trey Carroll
This should be a clarification/edit on your original question to fit better with how SO works.
Tim Coker
Thanks for the heads up Tim. I tried to delete it so that I could repost as a comment, but it only offes the option to "vote to delete" it so I'm leaving it as an answer.
Trey Carroll