在我们的产品Product Id="*"
中,我们使用 Wix 来告诉它为每个新版本生成一个新的产品代码。我们现在需要在安装期间将正在安装的 MSI 的产品代码记录到我们的注册表项之一中。我们可以在运行时通过循环通过“卸载”注册表项中的条目来查找我们的产品名称和版本来推断产品代码,但是在安装时直接记录此信息会更清晰。
Wix 有没有办法告诉我ProductCode
它生成了什么,以便我可以将它作为变量添加到RegistryValue
Wix 元素?
我猜没有,所以我尝试使用 a<?define?>
为所有问号设置一个变量,并在元素和元素中"????????-????-????-????-????????????"
使用这个变量。这适用于元素 ok,它会继续生成新的 GUID,但在元素中,此变量在编译时不会扩展,这意味着注册表项只是添加了所有问号。Product
RegistryValue
Product
RegistryValue
有什么纯 Wix 方法可以实现我想要的吗?我可以生成ProductCode
Wix 的外部并让 Wix 元素将其用作环境变量,但这为构建过程增加了额外的复杂性——其他可能会破坏的东西。如果我能纯粹用 Wix 来做这件事,我会很高兴。