Tuesday, November 7, 2006

Fatal Error CS0009

fatal error CS0009: Metadata file 'c:\Documents and Settings\ed\My Documents\VNI\conferences\SC06\tasks\ImslCS.dll' could not be opened -- 'There isn't metadata in the memory or stream'
I got this error for what I think is a known reason. We're actively working to support both .NET 1.1 and .NET 2.0 with IMSL C#, and it's proven to be quite a challenge. Many of our Acceptance Tests (ATs) failed under 2.0 because Microsoft decided to change the way they deal with double values. Anyway, we've got various working DLLs now and are moving onto a question of needing both 64-bit and 32-bit DLLs for .NET 2.0.
As part of this test, I took a 64-bit .NET 2.0 DLL and dropped it onto my system running 32-bit Windows XP and tried to build a very simple example. The error I got is what's quoted above. Reading around on the Internet, I see lots of people running into this because they're using COM DLLs rather than .NET Assemblies. And the MSDN Page is less than helpful. So while you may see this because you don't have a .NET assembly, you might also see this when you know you've got one. But now you need to find out if it's an assembly built with /platform:x64 while you're running on /platform:x86.

No comments: