随着微软在其最新版本中更改注册表项的模式,如何检测计算机上是否安装了Visual C++ 2017 Redistributable?
我的目标是安装VC++2015Redist,因为该软件是使用VS2015编写的。如果我可以在计算机上成功检测到VC++2017Redist,那么我将跳过VC++2015Redist安装
发布于 2018-04-20 02:26:48
2017 VC++ Redistributable安装升级/替换了2015年的安装
安装Visual Studio 2017可再发行组件将升级并替换2015年可再发行组件的任何现有安装。我已经检查过了,2015安装从“添加/删除程序”中消失了,注册表值(见下文)的版本号也更新了。此外,per MSDN,2017 VC++ Redistributable具有与2015版本的Binary Compatibility。
可以通过检查下面描述的注册表项来检查是否安装了2015或2017。这是针对x64系统的,看看32位系统中没有Wow6432Node的情况。
密钥:
适用于64位VC++可再发行的
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x64适用于32位VC++可再发行的
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\x86对于32位和64位安装,属性和值是相同的(相同的格式)。使用的注册表值:
Value 2015 2017
Name Val. Data Val. Data
-------- --------- ---------
Major 14 14
Minor 0 13
Bld 23026 26020请注意,随着新补丁的更新,2017年的@Minor和build (@Bld)编号将继续变化。
我建议,如果检查是否至少安装了2015,只需检查密钥和@重大版本为14即可。
如果检查2017,如果它不存在,打算进行升级,那么只需检查@Bld编号,如果它不是可以安装的最低版本,那么继续安装当前的2017版本。请注意,未来可能会更新@Minor和@Bld版本--我有另一台安装了v14.11.25325的计算机,也是2017年的版本。
发布于 2019-10-03 15:29:47
VC redistributable现在是 for VisualStudio 2015-2019。如果您尝试安装“旧”版本(例如2015),如果您有任何较新的版本(例如2017),则会收到错误(此回复结束)。
正如@CJBS所写的,它将自己写入注册表,但遗憾的是,我注意到了另一个记录位置(所以也要检查它):
适用于32位VC++可再发行的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86
适用于64位VC++可再发行的
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64
我建议阅读@Bld DWord记录并进行比较,以确定您是否需要更新的版本:2015年(Bld = 23026) 2017年(Bld = 26020) 2019年(Bld = 27820)
Error message image:0x80070666 -已安装此产品的另一个版本。无法继续安装此版本...
发布于 2020-12-16 11:13:07
# Check VCRedist current version
$OS= if ( ${env:ProgramFiles(x86)} ) {"\WOW6432Node"} else {"\"}
$vcredist = Get-ItemProperty -Path "HKLM:\SOFTWARE$OS\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" -ErrorAction SilentlyContinue -ErrorVariable eVcRedist
if ($eVcRedist) {
$Warning += @( "Abbyy FineReader 15 requires VCRedist." )
}
elseif (($vcredist.Bld -le 24215)) {
$Warning += @( "Abbyy FineReader 15 requires VCRedist." )
}https://stackoverflow.com/questions/46178559
复制相似问题