【发布时间】:2018-12-09 12:33:44
【问题描述】:
我在我的 .NET Core 2.1 项目中通过 NuGet 包使用 Z3,最近尝试从版本 4.5.0.1 更新到 4.8.1。然后我恢复到 4.5.0.1 并在创建上下文时遇到了这个异常:
using(var ctx = new Microsoft.Z3.Context())
{
}
System.DllNotFoundException:无法加载 DLL“libz3.dll”或其依赖项之一:找不到指定的模块。 (HRESULT 异常:0x8007007E)
我检查了以下内容:
- 我的应用是为 x64 编译的,我使用 z3x64win 包,
-
libz3.dll和Microsoft.Z3.dll都存储在%userprofile%\.nuget\packages\z3x64win\4.5.0.1\lib中, - 尝试按照here 的描述将此路径添加到 PATH 环境变量,但没有帮助,
- 尝试手动将
libz3.dll和Microsoft.Z3.dll保存到项目的bin目录,但问题依旧。
还有其他必要的步骤来推荐Z3吗?
【问题讨论】:
-
我不知道是不是这样,但是当 DLL 的拱门与我的程序不匹配时,我遇到了类似的问题(例如,如果您的 exe 是为 x86 编译的,但是您尝试加载的 DLL 是 x64)。或者您缺少 libz3.dll 所需的其他依赖项
-
我的应用程序是为 x64 编译的,我使用 z3x64win 包。 libz3.dll 不需要任何依赖项。
-
“或其依赖项之一”是问题所在,包作者没有包含它们。您需要下载并运行this。