Wix安装程序:查找SQL工具路径

时间:2017-06-21 15:29:58

标签: sql-server wix windows-installer environment-variables

我尝试动态确定SQL工具 SQLCMD.exe 的路径,以便在安装程序时创建数据库的备份。

我已尝试通过

搜索注册表
Width="60"

它适用于我的机器,但我最终在使用旧版MS SQL的系统上遇到错误。例如。 exe在subdir 110 而不是 130

使用

搜索环境路径
<Property Id="SQLBINDIR">
  <RegistrySearch Id="SQLServerReg" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\ClientSetup" Name="ODBCToolsPath" Type="raw" />
</Property>

返回我的所有路径,而不仅仅是所需的SQL路径。

我需要正确的路径才能运行

<SetProperty Id="SQLBINDIR" Value="[%Path]" After="LaunchConditions" Sequence="first" />

1 个答案:

答案 0 :(得分:0)

我通过添加this article中描述的C#自定义操作解决了这个问题。在那里,我用Environment.GetEnvironmentVariable("path");提取所有路径变量,并对所有SQL路径进行文件搜索,最后设置session["SQLBINDIR"] = foundFilePath;