簡體   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