gpt4 book ai didi

尽管设置了代码页,但具有数据库代码页中不可用字符的 Wix 字符串

转载 作者:行者123 更新时间:2023-12-04 16:53:33 31 4
gpt4 key购买 nike

我在 VS2012 中有一个 Wix 安装程序项目,我上次使用它时(大约一周前)编译得很好。
我今天回去发现了大约 15 个代码页错误:

Error   6   A string was provided with characters that are not available in the specified database code page '1252'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.

第一个出现在以下行中:
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Manufacturer="(株)テイコク" />

而且我认为 wix 因为日文字符而不高兴。然而在产品声明中,我将代码页设置为 932,这对于日语来说应该是正确的:
<Product Id="*" Codepage="932" Language="1041"
Name="各務原市農地支援・畑地管理システムインストーラー" Version="1.1.0.0"
Manufacturer="(株)テイコク" UpgradeCode="PUT-GUID-HERE">

我真的不明白错误是什么或如何解决它,特别是因为几天前这工作正常......

这是完整的 Wix 代码,以防万一:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:net="http://schemas.microsoft.com/wix/NetFxExtension">
<Product Id="*" Codepage="932" Language="1041" Name="各務原市農地支援・畑地管理システムインストーラー" Version="1.1.0.0" Manufacturer="(株)テイコク" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Manufacturer="(株)テイコク" />

<UIRef Id="WixUI_Minimal" />
<UIRef Id="WixUI_ErrorProgressText" />

<PropertyRef Id="NETFRAMEWORK40CLIENT" />
<Condition Message="インストールするには.NETフレームワーク4.0が必要です。フレームワークをインストールしてからもう一度インストーラーを実行してください。">
<![CDATA[Installed OR NETFRAMEWORK40CLIENT]]>
</Condition>

<MajorUpgrade DowngradeErrorMessage="もっと新しいバージョンが既にインストールされています。" />
<MediaTemplate EmbedCab="yes" />

<Feature Id="ProductFeature" Title="MapManagerInstaller" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>

<Icon Id="MapManager.exe" SourceFile="MapManager.exe" />
</Product>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="各務原市農地支援・畑地管理システム" />
</Directory>
<Directory Id="DesktopFolder" Name="Desktop">
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id ="ProgramMenuDir" Name="各務原市農地支援・畑地管理システム">
</Directory>
</Directory>
</Directory>
</Fragment>

<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="MapManagerProgramFiles" Guid="*">
<File Id="MapManagerExe" Name ="MapManager.exe">
<Shortcut Id="MapManagerDesktopShortcut" Directory="DesktopFolder" Name="各務原市農地支援・畑地管理システム" WorkingDirectory="INSTALLFOLDER" Icon="MapManager.exe" IconIndex="0" Advertise="yes" />
<Shortcut Id="MapManagerStartMenuShortcut" Directory="ProgramMenuDir" Name="各務原市農地支援・畑地管理システム" WorkingDirectory="INSTALLFOLDER" Icon="MapManager.exe" IconIndex="0" Advertise="yes" />
</File>
<File Id="AxInterop.SisLib" Name="AxInterop.SisLib.dll" />
<File Id="Interop.SisLib" Name="Interop.SisLib.dll" />
<File Id="ClassMap" Name="ClassMap.dll" />
<File Id="SuidenManager" Name="SuidenManager.dll" />
<File Id="HatachiManager" Name="HatachiManager.dll" />
<File Id="MapManagerShared" Name="MapManagerShared.dll" />
<RemoveFolder Id="INSTALLDIR" On="uninstall" />
</Component>
<Component Id="DesktopShortcut" Guid="*">
<Shortcut Id="DesktopShortcut" Name="各務原市農地支援・畑地管理システム" Target="[INSTALLFOLDER]MapManager.exe" WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="DesktopFolder" On ="uninstall" />
<RegistryValue Root="HKCU" Key="Software\MapMax\各務原市農地支援・畑地管理システム" Type="string" Value="" KeyPath="yes" />
</Component>
<Component Id="ProgramMenuDir" Guid="*">
<RemoveFolder Id="ProgramMenuDir" On ="uninstall" />
<RegistryValue Root="HKCU" Key="Software\MapMax\各務原市農地支援・畑地管理システム" Type="string" Value="" KeyPath="yes" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

更新:

用代码页 1252 中的字符替换每个日文字符工作正常。似乎 Wix 忽略了代码页规范,而是使用默认的 1252 一个......

我也在一个新的 wix 设置项目中尝试过这个,但遇到了同样的问题。

有任何想法吗?

最佳答案

我有同样的问题,但有一个 "è"字符(包含在 CP-1252 中,所以默认文化应该有效)。用“e”代替它修补问题,但这不是一个干净的解决方案。

真正有效的是添加 .wxl 文件代码页

<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Codepage="utf-8" Culture="fr-ca" xmlns="http://schemas.microsoft.com/wix/2006/localization">
</WixLocalization>

也精确 1252 工作
<?xml version="1.0" encoding="utf-8"?>
<WixLocalization Codepage="1252" Culture="fr-ca" xmlns="http://schemas.microsoft.com/wix/2006/localization">
</WixLocalization>

然后根据 Wix 文档指定要构建的文化 "Specifying Cultures to Build" .它需要与 .wxl 文件中写入的文化相同。

enter image description here

在 VS2010 中构建项目现在可以工作了。

编辑:
只需添加 <Product Codepage="1252"进入 .wxs 文件也解决了这个问题。

关于尽管设置了代码页,但具有数据库代码页中不可用字符的 Wix 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15915225/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com