【发布时间】:2017-08-08 18:58:29
【问题描述】:
我正在开发一个依赖于供应商提供的与硬件通信的 DLL 的应用程序(C# winforms)。
如果我选择 .NET 4(或更高版本)的目标框架,我会在尝试调用引用的 DLL 中的方法时收到以下消息:
DllNotFoundException:无法加载 DLL 'somelibrary.dll':对内存位置的访问无效。 (HRESULT 异常:0x800703E6)
如果我选择.NET 2.0或3.0的目标框架,则不会出现错误。
我怀疑存在不兼容问题或该库早于 .NET 3.0。
这可能是由于 .DLL 启动了一个可执行文件,该可执行文件充当应用程序和串行端口之间的通信处理程序。我尝试将该应用程序设置为使用各种兼容模式,并以管理员身份运行,但没有成功。
如何避免此错误并针对更现代的 .NET 平台(例如 4.5 或更高版本)? (或者我是否因为使用了一个可能相当旧的 DLL 而被卡住了?)
应用平台目标是 x86,我在 Win7 x64 上开发,默认设置为 UAC。
【问题讨论】:
-
您要加载的是 .net 程序集吗?你试过用
ildasm.exe打开它吗?fuslogwv.exe是否提供了其他信息? -
@ironstone13 我将使用您建议的工具进行进一步调查。我不确定程序集的类型。
标签: .net visual-studio dll