有没有办法将预处理器变量设置为属性的值?

Ray*_*Dey 8 xsd wix wix3

我有一个包含以下代码的WiX包含文件

<Fragment Id="PropertyFragment">
  <Property Id="DynamicLanguageCode" Value="[SystemLanguageID]" />
  <?define productLanguage = [DynamicLanguageCode]?>
</Fragment>
Run Code Online (Sandbox Code Playgroud)

现在在我的WiX脚本中的Product标签中,我想将Language属性设置为productLanguage的值,因为它只需要可本地化的整数.有没有办法让我的变量被分配属性的值?

谢谢

Wim*_*nen 25

关于wix变量和windows安装程序属性之间的区别,你的想法似乎很混乱.

威克斯变量可以如被引用$(var.foo).可以通过将-d命令行参数传递给,来定义这样的变量candle.exe.它也可以通过<?define foo="bar"?>语法定义.wix变量是仅在构建设置时才存在的概念.在其他任何事情发生之前,它由wix预处理器填充,就像#defineC++中的语句一样.

一个Windows安装程序性能的东西是在安装过程中填写.定义属性的一种方法是将它们放在MSI文件的Property表中.这就是wix Property元素的作用.Windows安装程序数据库中使用的某些(但不是全部)数据类型允许您使用[FOO]语法引用此类属性.支持此数据类型的一个示例是快捷方式数据类型,由Targetwix Shortcut元素的属性使用.该语言数据类型,则不会支持这个!