我有一个数据库安装程序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的消息。请让我知道,以便完成这项任务。
答案 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。