繁体   English   中英

无法加载平台设置为所有 win32 或 x86 的程序集

[英]Unable to load assembly with platform setting all win32 or x86

我正在编写一个使用 C# 和 C++(C# 调用 C++)的程序。 网上有人说 64 位和 32 位程序集有冲突,但我已将所有项目设置为 win32 或 x86。 见下图。 当前设置

我还尝试将 C# 应用程序设置为“任何 cpu”,但结果相同。 请参阅下图了解我收到的错误。 错误信息

根据 HansPassant 的建议,我将 C# 设置更改为prefer 32-bit ,结果是相同的错误。 在此处输入图片说明

有谁知道我当前问题的解决方案?

您首先需要确定 x86 和 x64 库位置:

x86path = (Path.GetDirectoryName(Assembly.GetAssembly(GetType()).CodeBase) + @"\x86\").Replace("file:\\", "");
x64path = (Path.GetDirectoryName(Assembly.GetAssembly(GetType()).CodeBase) + @"\x64\").Replace("file:\\", "");

然后要使用您想要的库并正确调用它,您需要尝试 InteropDotNet 包: https : //github.com/AndreyAkinshin/InteropDotNet

Github: https : //www.nuget.org/packages/InteropDotNet/

您可能不想使用整个包,但它有一个很好的功能,可以生成调用本机库的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM