如何在WIX数据库安装程序中检查SQL Server数据库版本

时间:2015-03-08 08:39:06

标签: sql-server-2008-r2 wix

我有一个数据库安装程序WIX工具,我想检查系统上是否安装了SQL Server 2008 R2,如果没有安装,我想显示要安装的消息。如何使用WIX工具执行此操作?这是我的代码

<Property Id="SQLSERVER">
      <RegistrySearch Id="SQLServer" Root="HKLM" Key="C:\Program Files (x86)\Microsoft SQL Server" Type="raw" Win64="yes" Name="InstalledInstances"/>      
    </Property>    

    <Condition Message="You don't have SQL Server 2008 R2 installed.Please Install SQL Server 2008 R2">
      <![CDATA[SQLSERVER >< MSSQL10_50.SQLSERVER2008R2]]>
    </Condition>

我在product.wxs

中添加了此代码

我有一个64位版本,当我运行安装程序时,我总是收到没有安装SQL Server 2008 R2的消息。请让我知道,以便完成这项任务。

1 个答案:

答案 0 :(得分:1)

我不确定为什么您的注册表项设置为C:\中的文件路径,但是这个答案:

how to find the version and edition of sql server instance via registry

表示你应该看:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的MSSQLServer \的MSSQLServer \ CURRENTVERSION

如果你期望64位版本,那么在搜索中使用Win64 =&#39; yes&#39;(但为什么你的x86路径?)如果版本的格式不适用于属性比较,您需要自定义操作代码来解析它。链接中答案的正确方法是使用serverproperty直接询问SQL,这也需要代码,但可能比注册表更可靠。您也可能无法坚持使用特定版本的SQL,因为客户会使用适合他们的版本,因此更有用的搜索可能至少适用于Server 2008 R2。