【发布时间】:2020-01-10 12:08:18
【问题描述】:
最近我用 VS2019 编写了一个程序,调用用 C++ (x64) 编译的 Tesseract OCR dll 并在 .NET Windows 窗体上显示结果。在我的 Windows 10 开发 PC 上一切正常。当部署到 Windows Server 2012 (x64) 时,它崩溃了,抱怨找不到 C++ dll。
我尝试了什么:
- 从微软安装vc_redist.x64.exe,还是不行。 (可能还不够?)
- 在该服务器上运行一个简单的 .NET windows 窗体程序,它运行良好。 (这不是 .NET 问题)
更新:
我使用了@Fenixil 建议的 Dependency Walker,但找不到下面的 dll:
- API-MS-WIN-CORE-KERNEL-32-PRIVATE-L1-1-1.DLL
- API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
- API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
- MF.DLL
- MFPLAT.DLL
- MFREADWRITE.DLL
- API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
- EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
- IESHIMS.DLL
- SETTINGSYNCPOLICY.DLL
- WLANAPI.DLL
这些 dll 可以在我的开发 PC 中找到,在 C:/Windows/WinSxS 中,不同目录下的多个同名文件。它们属于某些 Windows SP 更新,还是在 Win10 平台 API 中?安装它们而不是简单地将它们复制到生产服务器的最佳方法是什么?
【问题讨论】:
-
您需要提供那些“未找到”的 dll。请注意,
vc_redist.x64.exe不会安装调试运行时,因此请确保可执行文件与发布运行时库链接。 -
@VTT 您好,我有一个找不到的 dll 列表,有什么方法可以优雅地安装它们吗?
-
@Ted Yu 如果您设法解决了问题,请更新您的帖子。
标签: c++ .net windows visual-studio-2019 windows-server