这听起来很神秘。快速搜索发现了这个现有问题:Wix string with characters not available in database's codepage but codepage is set。
似乎MSI 的摘要流有一个单独的代码页设置- Codepage Summary 属性- 这与包的主代码页设置不同。
在使用InstEd进行测试时,我注意到一个称为“ SI Codepage ”的代码页设置(请参阅页面下方)。我真的没有在Orca中看到这个代码页摘要属性。也许它就在那里,而我只是看不到它。
尽管您设置了主包代码页,但您可能没有正确设置此摘要信息流代码页?
- 看起来摘要信息流代码页是在本地化文件中设置的,并且不会在本地化文件
Package element
中自动覆盖。这可能是一个 WiX 错误。wxl
- 我已经在下面的代码片段中进行了手动覆盖(
SummaryCodepage="!(loc.SummaryCodepage)"
- 通过本地化字符串从本地化文件中获取值。本质上,您是在自己完成这项工作,并且应该可以在没有 WiX 人员为您需要的错误修复的情况下工作。我希望- 一个新的 WiX 版本是沉重的东西)。
我还取出了主源文件中的CodePage attribute
for ,尝试让本地化文件中的设置生效。请参阅底部 WiX 错误数据库条目列表中的最后一个链接。Product element
wxs
wxl
我的直觉是“这里有更多的龙”。本地化处理起来很奇怪。这在合适的日本机器上会如何表现?我想知道,请做测试。
我拼凑了一个快速的模型,但没有时间正确测试。也许有一个快速测试:
<Product Id="*" Name="!(loc.ApplicationName)" Language="!(loc.LanguageLcid)" Version="1.0.0"
Manufacturer="!(loc.ManufacturerName)" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Languages="!(loc.LanguageLcid)" SummaryCodepage="!(loc.SummaryCodepage)" />
这是日文本地化文件(我不知道那些日文字符是什么意思,我只是复制并粘贴了一些东西来完成我的测试 -更新:好的,谷歌翻译来救援!没有发现攻击性语言!):
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Culture="ja-JP" Codepage="932" Language="1041"
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String Id="SummaryCodepage">932</String>
<String Id="LanguageLcid">1041</String>
<String Id="ApplicationName">各務原市農地支援・畑地管理システムインストーラー</String>
<String Id="ManufacturerName">(株)テイコク</String>
</WixLocalization>
我也将一些日文字符放入了一个单独的许可协议 RTF 中(我没有设置不同 RTF 文件的正确本地化包含)。设置 GUI 看起来不错 - 它以日文显示,并且日文字符显示在许可协议中。
请试一试,看看您的问题是否消失。如果没有,也许花一些时间查询WiX 错误数据库。
命中附近的 WiX 错误跟踪器: