Visual C++.NET 2003 and Broken Managed Assemblies
This is some really annoying bug in Visual Studio .NET 2003 (SP 1), took me two hours of my life: If the intermediate directory is set to something like ".obj/$(ConfigurationName)", the Assembly created will be broken, since it "does not contain a CLI header" - so the error message. It seems something is going completly wrong during compilation, since the dll is only 3 to 4 kB in size. If you omit the leading dot and set the intermediate directory to "obj/$(ConfigurationName)", it works.