作为安装的一部分,我创建了一个运行 vcredist_x86.exe(版本 9.0.xx)的安装程序。但是,在安装它之前,我想知道它是否已经在用户的系统中。我基本上不仅需要检测 DLL 是否存在,而且它们是否具有正确的版本号。有没有可靠的方法来做到这一点?
我正在使用 NSIS,但欢迎任何解决方案。
作为安装的一部分,我创建了一个运行 vcredist_x86.exe(版本 9.0.xx)的安装程序。但是,在安装它之前,我想知道它是否已经在用户的系统中。我基本上不仅需要检测 DLL 是否存在,而且它们是否具有正确的版本号。有没有可靠的方法来做到这一点?
我正在使用 NSIS,但欢迎任何解决方案。
尝试这个:
!包括“x64.nsh” 部分 var /GLOBAL hasCRT !define CRTCHECKDLL msvcr80.dll !define CRTCHECKNAME 'Microsoft.VC80.CRT,version="8.0.50727.6195",type="win32",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b"' 推'$ {CRTCHECKDLL}' 推“${CRTCHECKNAME}” 调用 WinSxS_HasAssembly 弹出 $hasCRT DetailPrint ${CRTCHECKDLL}=$hasCRT 部分结束
没有简单的方法可以做到这一点,所以我最终总是安装包,无论它是否已经安装。因为它是一个小安装无论如何它并没有太大的区别。