我正在尝试使用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话题.
在配置文件中定义变量.
例如,创建一个名为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)
.
归档时间: |
|
查看次数: |
7241 次 |
最近记录: |