WiX在安装过程中将msiexec安装日志保存为捆绑包的一部分

时间:2013-09-27 17:32:11

标签: visual-studio-2010 wix bootstrapper wix3.7

我正在运行Visual Studio 2010和WiX 3.7。

我已成功创建了一个分发我的XLL的WiX项目,并具有自定义操作以使用Excel注册XLL。我们计划通过.NET网页为用户分发XLL,其中包含用户可以点击的按钮链接。

我一直在寻找一个如何获取我的WiX项目并将安装日志文件(使用MSIEXEC参数)保存到程序文件下的公司目录的示例。我需要创建一个bootstrapper项目来执行此操作以便文件可以作为安装的一部分进行分发,这是否正确?

如果是这样,我有以下问题:

  1. 如何在bootstrapper项目中指定输出目录?
  2. 由于我的WiX项目产生了MSI输出,是否可以在引导程序项目中使用ExePackage(而不是MsiPackage)创建一个Chain?我问这个是因为这似乎是拥有IntallCommand的唯一方法(否则我会使用MsiPackage)。
  3. InstallCommand的参数是否与从命令行运行msiexec的参数相同?
  4. 如果卸载了该软件,是否会删除该日志文件?
  5. 我会在引导程序项目中引用MSI WiX项目吗?如果是这样,我能否为MSI项目使用变量(即如果MSI项目名称是MSIPROJ,那么引用变量将是($ var.MSIPROJ)?
  6. 我是否能够以与常规WiX设置项目相同的方式指定输出目录?
  7. 如果bootstrapper项目不是解决方案,我将如何实现目标?

    编辑1:

    我能够创建一个创建安装日志的引导程序项目(默认情况下在临时目录中)。这提出了一个全新的对话框。

    我对此的问题如下:

    1. 引导程序项目生成的对话框是否可以镜像 在MSI项目中设置对话框(即)?
    2. 资源可以(即EULA.rtf,Icon.ico,Dialog.jpg和 Banner.jpg)是否在WiX设置项目中指定了?

      <?xml version="1.0" encoding="UTF-8"?>
      <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
      <Bundle Name="Name" 
            Version="1.0.0.0" 
            Manufacturer="Company" 
            DisableModify="yes"
            UpgradeCode="71515514-5c35-4a2f-a782-fe91bf2a5943"
            Compressed="yes">
          <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
      
          <Chain>
        <PackageGroupRef Id="InstallerPackage"/>
          </Chain>
      </Bundle>
      <Fragment>
        <PackageGroup Id="InstallerPackage">
          <MsiPackage SourceFile="$(var.ExcelAddInDeploy.TargetPath)" Compressed="yes" EnableFeatureSelection="no" Vital="yes" DisplayInternalUI="yes">
            <MsiProperty Name="MSC" Value="[MSC]" />
          </MsiPackage>
        </PackageGroup>
      </Fragment>
      </Wix>
      
    3. 谢谢,

1 个答案:

答案 0 :(得分:0)

为了回答我的问题,下面给出了抑制EULA并显示正确图像的方法。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="Name" 
      Version="1.0.0.0" 
      Manufacturer="Company" 
      DisableModify="yes"
      UpgradeCode="insert GUID here"
      Compressed="yes">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense" >
  <bal:WixStandardBootstrapperApplication
    SuppressOptionsUI="yes"
    LogoFile="C:\Path\Logo.jpg"
    LicenseUrl=""
    xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" />
</BootstrapperApplicationRef>

    <Chain>
      <PackageGroupRef Id="InstallerPackage"/>
    </Chain>
</Bundle>
  <Fragment>
    <PackageGroup Id="InstallerPackage">
      <MsiPackage SourceFile="$(var.ExcelAddInDeploy.TargetPath)" Compressed="yes" EnableFeatureSelection="no" Vital="yes" DisplayInternalUI="yes">
        <MsiProperty Name="MSC" Value="[MSC]" />
      </MsiPackage>
    </PackageGroup>
  </Fragment>
</Wix>