【发布时间】:2021-11-03 04:37:53
【问题描述】:
我使用 Visual Studio 2015 编写了一个 C++ DLL,它包装了来自第 3 方库的一些函数。
我能够在编写 DLL 的 PC 上使用该 DLL 运行应用程序。
现在在新 PC(使用 VS 2019)上运行使用 DLL 中的函数的相同应用程序,exe 将无法运行,抛出“System.DllNotFoundException”
我已确认 DLL 与我的应用程序位于运行时相同的目录中。
使用依赖项 (https://github.com/lucasg/Dependencies) 我可以看到新 PC 缺少两个必需的框架 DLL,而旧 PC 上存在这些必需的框架 DLL:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll
C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
所以,我已经下载了包含这些 DLL (dotNetFx40_Full_x86_x64.exe) 的 Dot Net Framework 包,但是它不会安装在新 PC 上 - 报告“相同或更高版本的 .NET Framework 4 已经安装在这台电脑”
有什么建议吗?
【问题讨论】:
-
也许您可以使用 assemblyBindings 从 4.0.30319 映射到您当前的 .Net 版本。本题讲讲:stackoverflow.com/questions/19164239/…