【发布时间】:2010-09-02 13:38:37
【问题描述】:
我使用 WiX 创建的安装程序是通过 .wxl 文件本地化的。在 WiX 中可以指定多种文化,并且 light.exe 将被多次调用,为每种语言创建一个安装程序(这在从 Visual Studio 构建安装程序时可用)。
除 EULA 之外的所有作品文件。它是通过 .wxs 文件定义的
<WixVariable Id='WixUILicenseRtf' Value='en.rtf' />
而且我不知道从 .wxl 本地化文件更改此值的好方法。使用
<WixVariable Id='WixUILicenseRtf' Value='!(loc.EulaFile)' />
<String Id='EulaFile'>en.rtf</String>
不工作,sice .wxl 文件在链接时使用,.wxs 在它们之前编译,所以编译器找不到!(loc.EulaFile)。搜索论坛我发现了两种解决方法。首先是为每种语言创建一个自定义许可对话框——它似乎可以工作,但这是一种非常困难的方法,而且源代码非常臃肿。第二种方法是删除 Visual Studio / Votive 构建并多次调用 light.exe,每次通过 -d 命令行键指定不同的许可证文件。
有什么方法可以解决这个问题并使用本地化的 EULA 文件,以便可以在 VisualStudio + Voltive 中构建项目,而无需复制粘贴大量对话框?本地化安装程序是一个非常常见的问题,所以也许存在一些我不知道的解决方案?
【问题讨论】: