在Visual Studio 2019中替换WiX变量实现多语言安装包许可协议适配
WiX多语言安装包自动匹配许可协议的Visual Studio配置方案
操作步骤:
- 第一步:配置项目生成文化
右键WiX安装项目,选择「属性」,切换到生成(Build) 选项卡,在「要生成的区域性(Cultures to build)」输入框填入en-US;fr-FR,保存配置。 - 第二步:配置许可文件关联规则
你可以直接在Product.wxs中通过预编译条件自动匹配对应语言的许可,替换原来固定的WixVariable配置即可:
额外注意:选中项目中的两个许可rtf文件,在属性面板把「生成操作」设置为<?if $(var.Culture) = "fr-FR"?> <WixVariable Id="WixUILicenseRtf" Value="LicenseFR.rtf" /> <?else?> <WixVariable Id="WixUILicenseRtf" Value="License.rtf" /> <?endif?>Content,「复制到输出目录」设置为如果较新则复制,避免编译时找不到文件。 - 第三步:验证生成效果
点击解决方案的「重新生成」按钮,VS会自动在输出目录下生成en-US、fr-FR两个子文件夹,对应目录下的msi会自动加载对应语言的许可协议。
备选配置方案(修改项目文件)
如果上述预编译条件不生效,可以直接修改项目文件配置链接参数:
- 右键WiX项目选择「卸载项目」,再次右键选择「编辑 [你的项目名].wixproj」
- 在项目文件末尾
</Project>标签之前添加如下配置:
<PropertyGroup Condition="'$(Culture)' == 'fr-FR'"> <LinkerAdditionalArguments>-dWixUILicenseRtf=LicenseFR.rtf</LinkerAdditionalArguments> </PropertyGroup> <PropertyGroup Condition="'$(Culture)' == 'en-US'"> <LinkerAdditionalArguments>-dWixUILicenseRtf=License.rtf</LinkerAdditionalArguments> </PropertyGroup>
- 保存文件后重新加载项目,重新生成解决方案即可生效。
内容的提问来源于stack exchange,提问作者Renma
相关产品推荐
相关产品推荐

