我正在开发一个应用程序(C#winforms),它依赖于供应商提供的与硬件通信的DLL。.NET目标框架如何影响第三方DLL的加载?
如果让我选择.NET 4中(或其他更高)的目标框架,我得到尝试调用的参考DLL的方法当出现以下消息:
DllNotFoundException:无法加载DLL“somelibrary .dll':对内存位置的访问无效。 (来自HRESULT的异常:0x800703E6)
如果我选择.NET 2.0或3.0的目标框架,则不会发生该错误。
我怀疑存在不兼容性或库比.NET 3.0早。
这很可能是由于.DLL启动了一个可执行文件,它充当应用程序和串口之间的通信处理程序。我曾尝试将该应用程序设置为使用各种兼容模式,并以管理员身份运行,但未成功。
我能做些什么来避免这个错误,并针对更现代的.NET平台,如4.5或更高版本? (或者我是否因为使用了一个潜在的老DLL而被卡住了?)
应用程序平台目标是x86,我正在使用默认设置的UAC在Win7 x64上开发。
是否您尝试加载的.net程序集?你有没有试过用'ildasm.exe'打开它?是否有'fuslogwv.exe'提供的其他信息? – ironstone13
@ ironstone13我会进一步调查你所建议的工具。我不确定装配的类型。 – JYelton