我创建了多种语言的license.rtf文件,当我尝试构建我的wix项目时,它显示了这个错误:
为字符串提供了在指定的数据库代码页“1252”中不可用的字符。将这些字符更改为数据库代码页中存在的字符,或者通过修改以下属性之一来更新数据库的代码页:Product / @ Codepage,Module / @ Codepage,Patch / @ Codepage,PatchCreation / @ Codepage或WixLocalization / @代码页。
我尝试在Product标签上添加此属性 Codepage =“1256”,但仍显示相同的错误。
你能帮我解决这个问题吗?
答案 0 :(得分:2)
这听起来很神秘。快速搜索找到了这个现有问题:Wix string with characters not available in database 's codepage although codepage is set。
MSI的摘要流 - Codepage Summary property似乎有一个单独的代码页设置 - 这与包&#39不同; s 主要代码页设置。
我注意到代码页设置被称为" SI代码页"使用InstEd进行测试时(请参阅下页)。 我在 Orca 中看不到此代码页摘要属性。也许它就在那里,我只是没有看到它。
虽然您设置了主程序包代码页,但您可能没有正确设置此 summary information stream code page ?
Package element
中设置摘要信息流代码页,并且不会在wxl
本地化文件中自动覆盖。 这可能是一个WiX错误 。SummaryCodepage="!(loc.SummaryCodepage)"
- 通过本地化字符串从本地化文件中获取值。基本上你自己正在完成这项工作,这应该可行没有来自WiX家伙的bug修复你需要什么。我希望 - 一个新的WiX版本很重要。)我还为主CodePage attribute
源文件中的Product element
取出wxs
,尝试让wxl
本地化文件中的设置生效。请参阅底部WiX错误数据库条目列表中的最后一个链接。
我的直觉是" 这里有更多的龙"。处理本地化非常奇怪。这将如何在适当的日本机器上表现? 我想知道,请进行测试。
我把一个快速的模型拼凑起来,但没有时间正确测试。也许快速测试一下:
<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看起来没问题 - 它以日语显示,日语字符显示在许可协议中。
请试试看你的问题是否消失了。如果没有,也许花点时间查询the WiX bug database。
WiX错误跟踪器靠近点击 :