我正在尝试配置WiX安装程序和库,使得库中一个文件的版本号被用作安装程序的Product/@Version。
背景
如果在一个本地定义文件的安装程序中进行设置,则相对比较简单,只需要假设组件项目被WiX项目引用并进行配置即可:
<Component Id="Company.Assembly" Guid="[GUID]">
<File Id="Company.AssemblyFile"
Name="Company.Assembly.dll" KeyPath="yes"
DiskId="1"
Source="$(var.Company.Assembly.TargetPath)" />
</Component>
然后可以将产品版本设置为
<Product Id="[GUID]"
Name="Product Name"
Language="1033"
Version="!(bind.FileVersion.$(var.Company.AssemblyFile
.TargetFileName))"
Manufacturer="Company Name"
UpgradeCode="[GUID]">
问题
将所有组件移动到 WiX 库项目后,不再可以直接引用 !(bind.FileVersion.$(var.Company.AssemblyFile.TargetFileName))
变量。
我尝试在库中配置了一个 WixVariable。
WixVariable Id="BuildVersion" Value="!(bind.FileVersion.Company.AssemblyFile)"/>
然后从设置中引用它。
<Product Id="[GUID]"
Name="Product Name"
Language="1033"
Version="!(wix.BuildVersion)"
Manufacturer="Company Name"
UpgradeCode="[GUID]">
没有成功。
在库或设置中是否需要一些额外的步骤或语法才能使WixVariable(或其某个派生)可从安装程序中访问?