给这个问题一些背景。我们将Windows zip实用程序与我们的产品打包在一起。从我们的产品脚本之一调用此zip实用程序,该实用程序用于打包一些日志文件。我们的一位客户提出了一个问题,当他们运行我们的脚本(调用zip.exe)时,他们会弹出此窗口-“该程序无法启动,因为您的计算机缺少MSVCR71.dll”。我检查了依赖项遍历工具中的zip.exe,果然可以看到对msvcr71.dll的依赖项。客户告诉他们,可以通过将MSVCR71.dll文件手动放置在路径C:\ Windows \ SysWOW64或安装Windows 7 Redist来解决此问题。
但是,我创建了一个新的Windows 2012 VM,没有安装任何其他软件,并且我可以看到路径C:\ Windows \ SysWOW64中的msvcr71.dll和zip.exe成功运行,而不会抱怨缺少dll。因此想检查默认情况下msvcr71.dll是否可用吗?
Microsoft Visual C ++可再发行组件默认情况下不存在,需要安装。根据应用程序,可能包括msvcr*.dll
,也可能包括msvcm*.dll
和msvcp*.dll
。有时它可能会被其他应用程序安装在客户端计算机上,但是您不能依赖于它的存在或将要安装的版本。
为避免此类依赖性,并且由于客户端不一定总会同意自己安装其他软件包,因此通常的做法是在应用程序的安装文件夹中包括使用过的DLL。这是完全合法的,因为此Microsoft软件是“可再发行”的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句