【问题标题】:What is needed to run a VS2019-compiled application on Windows Server 2012?在 Windows Server 2012 上运行 VS2019 编译的应用程序需要什么?
【发布时间】: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


【解决方案1】:

vc_redist 有多个版本,您需要提供一个在您的应用程序中使用的版本。 Here 是一些与 vc_redist 的讨论,未找到,可能与您的问题有关。

您可以使用Dependency Walker工具检查系统中缺少哪些dll

【讨论】:

  • 感谢您的建议,对我迟到的回复感到抱歉。那些漏掉的dll是已知的,好像是WinSxS下的系统dll,有没有办法安装呢?阅读我更新的帖子。再次感谢。
  • @Ted,不幸的是我从来没有遇到过这些 dll 的问题,所以我不能指出你需要安装的具体包。但是谷歌可能会有所帮助:)似乎MF dll是related to MediaPlayback feature(尝试启用它);看起来 API-MS 是 false-positives,与它们无关;
  • 提到了其他一些here,解决方案是安装VS redistr 2013 x86 and x64
猜你喜欢
  • 2013-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多