WIX 检查是否安装了 VS2015 C++ 可再发行组件
WIX check if VS2015 C++ redistributable is installed
有谁知道如何检查 WIX 项目,是否安装了实际的 C++ 可再发行组件包?这个link描述了几个产品ID,但是它们有问题。它们随着 C++ redist 包的每次更新而改变。基于此,每次发布新的 VC redist 包更新时,我都必须在 WIX 项目中进行检查,这不是一个可用的解决方案。
我想用RegistrySearch
WIX元素来解决这个问题。因此,我需要知道一个注册表项,如果安装了更新版本的 C++ redist 包,该注册表项不会更改。我也检查了这个 link 中描述的注册表项,但似乎没有一个是可靠的。
Visual Studio 2013/2015 将添加额外的注册表项:
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\classes\installer\Dependencies
Name Property
---- --------
Microsoft.VS.VC_RuntimeAdditio Version : 12.0.21005
nalVSU_amd64,v12 (default) : {929FBD26-9020-399B-9A7A-751D61F0B942}
DisplayName : Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005
Microsoft.VS.VC_RuntimeAdditio Version : 14.0.23026
nalVSU_amd64,v14 (default) : {BC958BD2-5DAC-3862-BB1A-C1BE0790438D}
DisplayName : Microsoft Visual C++ 2015 x64 Additional Runtime - 14.0.23026
它们还包括像 Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v12
这样的键。这些键将指向当前安装的 redist 包,并且当您安装 redist 包时将是 removed/added。
有谁知道如何检查 WIX 项目,是否安装了实际的 C++ 可再发行组件包?这个link描述了几个产品ID,但是它们有问题。它们随着 C++ redist 包的每次更新而改变。基于此,每次发布新的 VC redist 包更新时,我都必须在 WIX 项目中进行检查,这不是一个可用的解决方案。
我想用RegistrySearch
WIX元素来解决这个问题。因此,我需要知道一个注册表项,如果安装了更新版本的 C++ redist 包,该注册表项不会更改。我也检查了这个 link 中描述的注册表项,但似乎没有一个是可靠的。
Visual Studio 2013/2015 将添加额外的注册表项:
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\classes\installer\Dependencies
Name Property
---- --------
Microsoft.VS.VC_RuntimeAdditio Version : 12.0.21005
nalVSU_amd64,v12 (default) : {929FBD26-9020-399B-9A7A-751D61F0B942}
DisplayName : Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.21005
Microsoft.VS.VC_RuntimeAdditio Version : 14.0.23026
nalVSU_amd64,v14 (default) : {BC958BD2-5DAC-3862-BB1A-C1BE0790438D}
DisplayName : Microsoft Visual C++ 2015 x64 Additional Runtime - 14.0.23026
它们还包括像 Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v12
这样的键。这些键将指向当前安装的 redist 包,并且当您安装 redist 包时将是 removed/added。