Wix Installer - 如何在安装路径中显示[Manufacturer]的值?

ser*_*ist 17 wix wix3.7

我正在尝试使用WiX创建一个带有UI的安装程序.

我的INSTALLFOLDER使用以下设置:

<Directory Id="TARGETDIR"
           Name="SourceDir">
  <Directory Id="ProgramFiles64Folder">
    <Directory Id="ManufacturerFolder"
               Name="[Manufacturer]">
      <Directory Id="INSTALLFOLDER"
                 Name="[ProductName]" />
    </Directory>
  </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

在<Product>部分中,我定义:

<UIRef Id="WixUI_InstallDir" />
<UIRef Id="WixUI_ErrorProgressText" />

<Property Id="WIXUI_INSTALLDIR"
          Value="INSTALLFOLDER" />
Run Code Online (Sandbox Code Playgroud)

当我运行安装程序并进入"目标文件夹"面板时,我看到:

Install Service to: 
C:\Program Files\[Manufacturer]\[ProductName]\
Run Code Online (Sandbox Code Playgroud)

如何让它评估显示的变量?

注意:如果我离开它们,然后单击"下一步","安装并完成"它将起作用.它看起来很糟糕.

Rob*_*ing 38

Binder变量可以很容易地实现这一点,而无需定义预处理器变量.它会像这样:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFiles64Folder">
    <Directory Id="ManufacturerFolder" Name="!(bind.property.Manufacturer)">
      <Directory Id="INSTALLFOLDER" Name="!(bind.property.ProductName)" />
    </Directory>
  </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

!(bind.)语法中记录Linker (light)的WiX.chm话题.

  • 当应用实例转换时,它似乎不起作用 - 我在安装不同的实例时仍然获得默认的ProductName. (2认同)

Bry*_*anJ 9

在配置文件中定义变量.

例如,创建一个名为config.wxi的文件,其中包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
  <Include>
    <?define Manufacturer = "Company Name" ?>
    <?define ProductName = "Product Name" ?>
  </Include>
Run Code Online (Sandbox Code Playgroud)

然后使用$(var.Manufacturer)和引用.wxs文件中的变量$(var.ProductName).