提供一些关于这个问题的背景。我们将 windows zip 实用程序与我们的产品一起打包。这个 zip 实用程序是从我们的一个产品脚本中调用的,用于打包一些日志文件。我们的一位客户提出了一个问题,即当他们运行调用 zip.exe 的脚本时,他们会弹出此消息——“程序无法启动,因为您的计算机中缺少 MSVCR71.dll”。我检查了依赖walker 工具中的zip.exe,果然,我可以看到对msvcr71.dll 的依赖。客户告诉他们可以通过手动将 MSVCR71.dll 文件放在路径 C:\Windows\SysWOW64 中或安装 Windows 7 redists 来克服这个问题。
但是,我创建了一个新的 Windows 2012 VM,没有安装任何其他软件,并且我可以在路径 C:\Windows\SysWOW64 中看到 msvcr71.dll,并且 zip.exe 成功运行而没有抱怨缺少 dll。所以想检查msvcr71.dll是否默认可用?
不,它不是 Windows 发行版的一部分。如果您的应用程序需要来自 .NET Framework 1.1 的 msvcr71.dll 文件,安装程序应将其安装在应用程序的程序文件目录中,而不是 Windows system32 或 SYSWOW64 目录中。
资源:
在 Visual C++ 中重新分发共享 C 运行时组件
https://support.microsoft.com/en-us/help/326922/redistribution-of-the-shared-c-runtime-component-in-visual-c