如何将默认的“安装位置”传递给RtfLicense引导程序?

时间:2012-10-26 10:19:47

标签: wix wix3.6 bootstrapper

我正在使用rtflicence标准引导程序在链中的poject msi之前安装dotnet。

我注意到有一个“选项”按钮,显示安装位置对话框,允许用户更改默认安装目录。

我需要:

  1. 禁止显示此选项按钮,或
  2. 使用默认路径填充安装位置,并在用户更改时将其传递回安装程序。
  3. 我读到可以将Burn变量从bootstrapper传递给msipackage,但是我没有找到任何进一步的细节,并希望被指向正确的方向。

    由于

3 个答案:

答案 0 :(得分:21)

要使用选项1,您必须滚动自己的BootstrapperApplication并从菜单中删除选项按钮。

选项二更容易实现。引导程序使用一个名为InstallFolder的特殊Burn变量来获取和设置该视图上文本块中的内容,您可以在Bundle元素内分配该内容。

<Variable Name="InstallFolder" Type="string" Value="[ProgramFilesFolder]"/>

常量ProgramFilesFolder将在程序启动时设置该文本块的值,如果用户浏览到另一个目录,它将存储在同一个变量中。要将其传递给您的链中的MSI,请使用InstallFolder标记传递MsiPropertyINSTALLLOCATION是您的WiX项目中的属性名称。)

<MsiPackage Vital="yes" DisplayName="Your Name" Id="MsiId" SourceFile="path/to/file.msi">
    <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" />
</MsiPackage>

答案 1 :(得分:18)

我刚刚发现了SuppressOptionsUI选项,它解决了你的选项1而没有滚动你自己的BootstrapperApplication:

<?xml version="1.0" encoding="UTF-8"?>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
 xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

   <Bundle>
      <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
         <bal:WixStandardBootstrapperApplication LicenseFile="..\eula.rtf" SuppressOptionsUI="yes"/>
      </BootstrapperApplicationRef>

      <Chain>
      </Chain>
    </Bundle>
</Wix>

答案 2 :(得分:0)

我认为您可以尝试通过创建主题来删除选项按钮。我不必自己使用主题,但这里有两个相关的SO链接可能会让你指向这个方向:

WiX bootstrapper theme file?

Theme for my WiX Installer