A few weeks ago, while I was searching for something else in Visual Studio's Settings, I ran across this option:
I run on 64-bit Windows, so I figured this would be a sensible option to set and switched it on. And all was good in the world.
Until I started on a new project a couple of weeks later, that is, when running it up for the first time I was puzzled to see this YSOD:
Invalid program? What the hell's that coming from? The only thing that I could immediately think of was that the last thing I did before hitting F5 was to install Ninject. I cast around for an hour or so trying assorted types of restarting processes/PCs etc, before going to Twitter...
With #ninject, has anyone seen this error? 'Common Language Runtime detected an invalid program.' More importantly, anyone know how 2 fixit
— Phil Pursglove (@philpursglove) January 20, 2014
Fran quickly replied with this:
@philpursglove ... yes, but I cant remember the details. Sounds a bit like a 32bit app/dll trying to reference a 64bit dll?
— Fran Hoey (@franhoey) January 20, 2014
which was the clue I needed:
@franhoey ooh, you might be onto something there - let me check... // @brightoniant
— Phil Pursglove (@philpursglove) January 20, 2014
And yep, as soon as I turned off 64-bit IIS Express the world righted itself...So I'm interested to know what causes this and whether there's a way to successfully run Ninject in 64-bit code (I'm quite prepared for this to be something related to my inexperience with Ninject).