如何在Wix Bundle中为MSIPackage定义IACCEPTSQLLOCALDBLICENSETERMS

时间:2016-01-11 11:16:14

标签: c# wix

您能否帮我一点,如何在我的Wix包中定义IACCEPTSQLLOCALDBLICENSETERMS命令行参数,以便在安装Microsoft SQL Server 2014 Express Localdb时使用。

我在安装过程中遇到错误,缺少IACCEPTSQLLOCALDBLICENSETERMS命令行参数。

我使用以下命令调用SQLLocalDb.msi:

<MsiPackage SourceFile="$(var.SolutionDir)Prerequisites\SqlLocalDB.msi" Compressed="yes" />

但我无法像ExePackage

那样定义InstallCommand

由于

1 个答案:

答案 0 :(得分:1)

您需要MsiPropertyMsiPackage,名称为IACCEPTSQLLOCALDBLICENSETERMS,值为YES

<!-- Sql server Installation --> 
   <PackageGroup Id="SqlLocalDB2014Installation" > 
      <MsiPackage SourceFile=".\Prerequisites\SqlLocalDB2014.MSI" Compressed="yes" EnableFeatureSelection="yes" Vital="yes" 
              InstallCondition="NOT(SQLSERVERDB2014_EXIST)"> 
    <MsiProperty Name="IACCEPTSQLLOCALDBLICENSETERMS" Value="YES"/> 
  </MsiPackage> 
</PackageGroup> 

关于检查现有安装,您确实需要检查注册表。我在下面列举了一个例子,虽然key将取决于确切的版本(32比64比特,标准vs快递等)。有关详细信息,请参阅此blog

<property id="SQLSERVERDB2014_EXIST">
<registrysearch id="SQLServer2005orLater"
   key="Software\Microsoft\Microsoft SQL Server\Instance Names\SQL"
   name="MSSQL"
   root="HKLM"
   type="raw"
   win64="no">
</registrysearch>
</property>