WiX 3.8安装IIS Express和SQL Server LocalDB 2012

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WiX 3.8安装IIS Express和SQL Server LocalDB 2012相关的知识,希望对你有一定的参考价值。

我正在尝试使用WiX 3.8构建一个bootstraper应用程序,它将安装IIS Express 8和sql server 2012.我看到下面的链接,但他们不使用捆绑包,答案仅适用于我真的不需要的sql 2012部分。我发现的所有“教程”看起来都非常过时 - 基于旧版本的wix。有没有人有什么建议?这是我所得到的。我似乎无法找到以答案文件或类似方式静默安装IIS或SQL Server或LocalDB。最终目标是在这些安装之外不为wix提供UI。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Name="Bootstrapper1" Version="1.0.0.0" Manufacturer="" UpgradeCode="668b68ed-5274-4413-984d-72959e8e211a">
     <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
     <Chain>
  <MsiPackage
    Name="IIS Express 8"
    Cache="no" 
    Compressed="yes" 
    Permanent="yes" 
    Vital="yes"
    DisplayInternalUI="yes"
    SourceFile="F:iisexpress_8_0_RTM_x64_en-US.msi" />
  <ExePackage
    Name="SQL Server Express 2012"
    Cache="no" 
    Compressed="yes" 
    Permanent="yes" 
    Vital="yes"
    SourceFile="F:SQLEXPR_x64_ENU.exe" />
  <MsiPackage
    Name="SQL LocalDB"
    Cache="no" 
    Compressed="yes" 
    Permanent="yes" 
    Vital="yes"
    DisplayInternalUI="yes"
    SourceFile="F:SQLLocalDB.msi" />  
     </Chain>
    </Bundle>
</Wix>

How to install IIS Express 8 and SQL Server 2012 using WiX?

答案

这似乎工作正常

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
     xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
     >



  <Bundle Name="MyApp" Version="1.0" Manufacturer="ACME">

    <BootstrapperApplicationRef Id="WixExtendedBootstrapperApplication.HyperlinkLicense">
      <bal:WixExtendedBootstrapperApplication SuppressOptionsUI="yes" LicenseUrl=""  />
      <Payload SourceFile="ResourcesLogoSide.png" />
      <Payload SourceFile="ResourcesLogo.png" />     
    </BootstrapperApplicationRef>

    <WixVariable Id="SuppressOptionsUI" Value="Yes"/>

    <WixVariable Id="WixExtbaThemeXml" Value="ResourcesBundle2Theme.xml" />
    <WixVariable Id="WixExtbaThemeWxl" Value="ResourcesHyperlinkTheme.wxl" />

    <Chain>           
      <PackageGroupRef Id="NetFx46Redist"/>
      <PackageGroupRef Id="LocalDb64"/>
      <PackageGroupRef Id="LocalDb"/>
      <PackageGroupRef Id="IISExpress64"/>
      <PackageGroupRef Id="IISExpress86"/>
    </Chain>
  </Bundle>
  <Fragment>
     <bal:Condition Message="Requires windows 7 or higher">VersionNT &gt;= v6.1</bal:Condition>  
    <PackageGroup Id="IISExpress64">
      <MsiPackage
       Id="IISExpress64"
       Name="IIS Express 8"
       Cache="no"
       Compressed="no"
       Permanent="yes"
       Vital="yes"
       DisplayInternalUI="yes"     
       SourceFile=".iisexpress_8_0_RTM_x64_en-US.msi" 
       InstallCondition="VersionNT64" />  
    </PackageGroup>
    <PackageGroup Id="IISExpress86">
      <MsiPackage
        Id="IISExpress86"
        Name="IIS Express 8"
       Cache="no"
       Compressed="no"
       Permanent="yes"
       Vital="yes"
       DisplayInternalUI="yes"
       SourceFile=".iisexpress_8_0_RTM_x86_en-US.msi"
       InstallCondition="NOT VersionNT64" />
    </PackageGroup>

    <PackageGroup Id="LocalDb64">
      <MsiPackage Id="SqlServerLocalDb64bit"
                        DisplayInternalUI="yes"
                        Permanent="yes"
                        Visible="yes"
                        Compressed="no"
                        EnableFeatureSelection="yes"
                        Vital="yes"
                        SourceFile=".SqlLocaLDBx64.MSI"
                        DownloadUrl="{2}"
                        InstallCondition="NOT LocalDbInstalled AND VersionNT64" >
        <MsiProperty Name="IACCEPTSQLLOCALDBLICENSETERMS" Value="YES" />
      </MsiPackage>
    </PackageGroup>
    <PackageGroup Id="LocalDb">
      <MsiPackage Id="SqlServerLocalDb32bit"                  
                        DisplayInternalUI="yes"
                        Permanent="yes"
                        Visible="yes"
                        Compressed="no"
                        EnableFeatureSelection="yes"
                        Vital="yes"
                        SourceFile=".SqlLocaLDBx86.MSI"
                        DownloadUrl="{2}"
                        InstallCondition="NOT LocalDbInstalled AND NOT VersionNT64" >
        <MsiProperty Name="IACCEPTSQLLOCALDBLICENSETERMS" Value="YES" />
      </MsiPackage>
    </PackageGroup>
  </Fragment>
</Wix>

以上是关于WiX 3.8安装IIS Express和SQL Server LocalDB 2012的主要内容,如果未能解决你的问题,请参考以下文章

修复在 WiX 3.8 中创建的设置时出错

如何使用 wix 3.8 安装程序在 windows 文件夹中创建文件夹

WiX 3.8 导致 VS 2013 RC 灾难性故障

在wix安装的下拉列表中绑定IIS本地网站?

WiX 3.8:使用相同注册表值的两个MSI。如果同时卸载两个MSI,如何删除注册表值?

Wix 3.5 和 IIS7 - WriteIIS7ConfigChanges 失败 - 在尝试将三个 Web 应用程序作为虚拟目录安装到默认网站时