如何生成msbuild bootstrapper以从web安装.net 4.0先决条件

时间:2014-07-11 18:52:51

标签: c# visual-studio-2012 msbuild wix wix3.8

我花了几天时间寻找这个问题的解决方案而没有任何实际结果。我有一个WiX 3.8项目来安装Excel加载项。该项目创建了一个MSI。我需要引导进入这个项目能够检查.net framework 4.0客户端是否已安装,如果没有,则从Web安装它。

我找到了这个问题的两种可能的解决方案:

  1. 创建一个WiX引导项目。
  2. 使用Visual Studio 2012附带的MSBuild引导程序。
  3. 运行构建后事件命令行
  4. 如果我使用第1项,那么就无法生成MSI,这是一项要求。 我想做第2或第3项,但是找不到一个能够为下载先决条件创建必要的bootstrap可执行文件的示例。

    任何人都可以帮助我吗?

    修改1 我试图做如下所示的第1项。我能够使用DisplayInternalUI =“yes”标志从我的MSI显示UI,并使用主题和WixBalExtensionExt设置刻录UI的样式。

    <?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:util="http://schemas.microsoft.com/wix/UtilExtension">
        <Bundle Name="Product Name" 
          Version="1.0.0.0" 
          Manufacturer="Company Name" 
          IconSourceFile="..\path\to\Icon.ico"
          DisableModify="yes"
          UpgradeCode="[guid]">
         <BootstrapperApplicationRef Id="WixExtendedBootstrapperApplication.HyperlinkLicense">
             <Payload SourceFile="Resource\Image1.png"/>
             <Payload SourceFile="Resource\Image2.png"/>
             <bal:WixExtendedBootstrapperApplication SuppressOptionsUI="yes" LicenseUrl="" />
         </BootstrapperApplicationRef>
         <WixVariable Id="WixExtbaThemeXml" Value="Resource\AddInTheme.xml" />
         <WixVariable Id="WixExtbaThemeWxl" Value="Resource\AddInTheme.wxl" />
         <Chain>
          <PackageGroupRef Id ="NetFx40ClientWeb"/>
          <MsiPackage Id="MyPackage" 
                  SourceFile="..\MyPackage\bin\$(var.Configuration)\MyPackage.msi"
                  Vital="yes"
                  DisplayInternalUI="yes"
                  />
        </Chain>
        </Bundle>
    </Wix>
    

    如果有办法以MSI创建引导程序应用程序,请告诉我。

    否则,如果我需要使用WiX脚本中的条件来安装它,请确认我是否使用内置的bootstrapper到visual studio。这是如何工作的?

    编辑2 由于WiX引导程序仅生成EXE,因此不符合我的要求。是否有一个如何将.net下载(不是可再发行的)引导到WiX项目的实际示例?可再发行的例子很多,但下载没有。

0 个答案:

没有答案