我正在尝试设置使用Wix开发的MSI安装程序以支持多语言UI,因此我创建Strings_en-us.wxl
了包含以下内容的文件:
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="en-us" xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="Language">1033</String>
<String Id="Codepage">1252</String>
<String Id="DowngradeErrorMessage">A newer version of [ProductName] is already installed.</String>
</WixLocalization>
然后从Product.wxs
文件中:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="$(var.ProduceCode)"
Name="TestSetupProject1"
Version="$(var.Version)"
Language="!(loc.Language)"
Codepage="!(loc.Codepage)"
Manufacturer="$(var.CompanyName)"
UpgradeCode="$(var.UpgradeCode)">
我立即得到一个错误:
错误CNDL0276:代码页'!(loc.Codepage)'不是有效的Windows代码页。请检查源文件中的“产品/ @代码页”属性值。
那么,我在这里做错了什么?
从缺少任何答复的角度来看,我将得出结论,这是不可能的。
我不确定这是Microsoft的错还是Wix解析器中的某些遗漏?唯一的方法是将代码页号直接硬编码到.wxs文件本身中,这非常不方便,因为在重新编译为其他语言时必须将其切换为适当的代码页号。除此之外,无论如何,这些天谁在使用代码页?
PS。为了一劳永逸地修复它,我尝试执行此操作(就像它应该从一开始就完成):
Codepage="UTF-8"
它进行了编译,但是生成的MSI文件的UI看起来像这样:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句