12

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

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

我需要:

  1. 阻止显示此选项按钮,或
  2. 使用默认路径填充安装位置,并在用户更改时将其传递回安装程序。

我读到可以将 Burn 变量从引导程序传递给 msipackages,但我还没有找到任何进一步的细节,希望能指出正确的方向。

谢谢

4

3 回答 3

22

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

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

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

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

<MsiPackage Vital="yes" DisplayName="Your Name" Id="MsiId" SourceFile="path/to/file.msi">
    <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" />
</MsiPackage>
于 2012-11-02T20:46:16.907 回答
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>
于 2012-12-28T18:21:21.307 回答
0

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

WiX引导程序主题文件?

我的 WiX 安装程序的主题

于 2012-12-28T18:29:56.123 回答