我有一个带有以下代码的WiX包含文件
<Fragment Id="PropertyFragment">
<Property Id="DynamicLanguageCode" Value="[SystemLanguageID]" />
<?define productLanguage = [DynamicLanguageCode]?>
</Fragment>
现在,在我的WiX脚本的“产品”标签中,我想将“语言”属性设置为productLanguage的值,因为它仅采用可本地化的整数。有没有办法让我的变量分配属性值?
谢谢
最佳答案
关于wix变量和Windows Installer属性之间的区别,您似乎有一些困惑。
wix变量可以称为$(var.foo)
。可以通过将-d
命令行参数传递给candle.exe
来定义这样的变量。也可以通过<?define foo="bar"?>
语法定义。 wix变量是仅在build设置时存在的概念。 wix预处理器会在其他任何事情发生之前填充它,就像C++中的#define
语句一样。
Windows安装程序的属性是在安装过程中填写的。定义属性的一种方法是将它们放在MSI文件的Property table中。这就是wix Property元素的作用。 Windows安装程序数据库中使用的一些(但不是全部)data types允许您使用[FOO]
语法引用此类属性。支持此数据类型的一个示例是Shortcut数据类型,由wix Shortcut元素的Target
属性使用。 Language数据类型不支持!
关于wix - 有没有一种方法可以将预处理器变量设置为属性的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162623/