我有一个C#winapp.我从C#应用程序调用一个原生.dll文件(由我自己创建),它工作正常.
但是当我将我的应用程序(.exe和.dll文件)复制到另一台机器时,我收到一条错误消息:
无法加载DLL"c:\ dllname.dll":找不到指定的模块.(来自HRESULT的异常:0x8007007E)
这是C#代码:
class IsoMessageHelper
{
public const string ISO8583_DLL = "c:\\Hc8583.dll";
[DllImport(ISO8583_DLL, CallingConvention = CallingConvention.Cdecl)]
public static extern bool InitializationRq(...)
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
部署具有本机依赖性的.Net应用程序时的一个常见问题是本机dll本身可能缺少目标计算机上的依赖项,例如C运行时的正确版本.
使用Dependency Walker之类的工具来分析您的本机dll,并确定它是否对您复制它的机器缺少依赖性.