我创建了一个C ++ / CLI程序集,它创建了一个围绕本机C ++代码的包装器。当我将它作为资源添加时,资源编译和程序集加载到我的C#项目中。我可以从我的应用程序中访问我的对象和智能感知,但在尝试构建时,它会崩溃,但异常:
BadImageFormat
无法加载文件或程序集 'MyCLI,版本= 1.0.3680.28432, Culture = neutral,PublicKeyToken = null' 或其中一个依赖项。一次尝试 是用来加载程序的 格式不正确。
我将其加载到表单加载事件中:
MyCLI.myCLI z;
...当我编译时,它在C#
中的主构造函数中崩溃了Application.Run(new Form1());
有没有人知道可能导致此异常的原因?
由于
答案 0 :(得分:8)
您正尝试在64位操作系统上运行此代码。您的C#代码将很好地编译为64位机器代码。但是当它试图加载32位C ++ / CLI程序集时,你会碰壁。
在C#项目中,使用Project + Properties,Application选项卡,Platform Target = x86。也可以使用Build + Configuration Manager创建64位版本的C ++ / CLI程序集。使用Platform Target是更好的解决方案。