最近我用VS2019编写了一个程序,调用C++(x64)编译的Tesseract OCR dll并在.NET Windows窗体上显示结果。在我的 Windows 10 开发电脑上一切正常。当部署到 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中?安装它们而不是简单地将它们复制到生产服务器的最佳方法是什么?
最佳答案
vc_redist 有多个版本,您需要提供一个在您的应用程序中使用的版本。 Here未找到与 vc_redist 的一些讨论,可能与您的问题有关。
您可以使用Dependency Walker检查系统中缺少哪些dll的工具
关于c++ - 在 Windows Server 2012 上运行 VS2019 编译的应用程序需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57841900/