在我的应用程序部署中,我们正在验证计算机中安装了哪个版本的excel客户端。
有时如果安装了多个版本,我们会尝试获取最新版本的Excel,然后安装我们的插件。
我们需要获取最新版本的Excel才能在注册表中进行搜索。
关注注册表
“HKEY_LOCAL_MACHINE \ SOFTWARE \类\ Excel.Application \ CURVER”
为Excel 2016提供了
的价值Excel.Application.16
如何从这个单独的16号进入财产?我们必须得到这个,因为如果安装了excel 2010或更高版本,我们必须安装我们的Msi。
答案 0 :(得分:1)
不是读取注册表然后使用字符串值,而是可以对excel组件ID进行组件搜索,这是一种更强大的技术:
请在下面找到其他Excel版本的组件ID。
希望有所帮助!
编辑:您可以这样做: <Property Id="EXCEL2016Search">
<ComponentSearch Id="DetectExcel1" Guid="{C4ACE6DB-AA99-401F-8BE6-8784BD09F003}" Type="file"/>
</Property>
<Property Id="EXCEL2013Search">
<ComponentSearch Id="DetectExcel2" Guid="{E3BD1151-B9CA-4D45-A77E-51A6E0ED322A}" Type="file"/>
</Property>
<Property Id="EXCEL2010Search">
<ComponentSearch Id="DetectExcel3" Guid="{8B1BF0B4-A1CA-4656-AA46-D11C50BC55A4}" Type="file"/>
</Property>
<Property Id="EXCELVersion" Value="0" />
<SetProperty Id="EXCELVersion" After="DetectExcel3" Value="1" Sequence="first" >
<[CDATA[EXCEL2016Search OR EXCEL2013Search OR EXCEL2010Search]]>
</SetProperty>
如果属性“EXCELVersion”的值为1,则安装Excel 2010或更高版本。如果为0,则不安装excel 2010或更高版本。