Wix (candle.exe) 中的符号错误 LGHT0311,windows-1252

Posted

技术标签:

【中文标题】Wix (candle.exe) 中的符号错误 LGHT0311,windows-1252【英文标题】:Symbole in Wix (candle.exe) error LGHT0311, windows-1252 【发布时间】:2019-11-26 09:01:50 【问题描述】:

我正在尝试用热、蜡烛和光来收集一些文件夹。 我正在收集的其中一个驱动程序有 32 位 dll,在它的描述(和产品名称)中有一个“®”符号。

其中一个: 名称:mfx_mft_h264vd_32.dll, 描述:用于英特尔® 核芯显卡的 H.264 解码器 MFT

在 heat.exe 收获期间它能够处理它:

<Component Id="cmp9558AE64A7F57EA5334374D64EF8923F" Guid="9D4432DB-793C-4D1B-A264-C19DE7BDA0CA">
                    <File Id="filB8B8F8A50451F85AED239C3A3C4F0B92" KeyPath="yes" Source="$(var.SourceDirectory)\win32\mfx_mft_h264vd_32.dll">
                        <Class Id="1A1703E9-3E7C-41C3-AD5A-795CBFB19552" Context="InprocServer32" Description="H.264 Decoder MFT for Intel® HD Graphics" ThreadingModel="both" />
                    </File>
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Value="H.264 Decoder MFT for Intel® HD Graphics" Type="string" Action="write" />
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Name="InputTypes" Value="7669647300001000800000AA00389B714832363400001000800000AA00389B717669647300001000800000AA00389B714832363400001000900000AA00389B717669647300001000800000AA00389B714156433100001000800000AA00389B71" Type="binary" Action="write" />
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Name="OutputTypes" Value="7669647300001000800000AA00389B714E5631326139AE42BA67FF47CCC13EED7669647300001000800000AA00389B714E56313200001000800000AA00389B71" Type="binary" Action="write" />
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Name="Attributes" Value="41464D490100000015CBA788077B344A9128E64C6703C4D313000000000000000700000000000000" Type="binary" Action="write" />
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Name="MFTFlags" Value="36" Type="integer" Action="write" />
                    <RegistryValue Root="HKCR" Key="MediaFoundation\Transforms\Categories\d6c02d4b-6833-45b4-971a-05a4b04bab91\1a1703e9-3e7c-41c3-ad5a-795cbfb19552" Value="" Type="string" Action="write" />
                </Component>

问题是当我尝试使用candle.exe时,它返回错误消息:

C:\MultipackageInstaller\Developments\MultipackageInstaller\ComponentMsiosConfig\WixTemplate\HarvestedFiles.wxs(846) : error LGHT0311 : 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.
C:\MultipackageInstaller\Developments\MultipackageInstaller\ComponentMsiOSConfig\WixTemplate\HarvestedFiles.wxs(848) : error LGHT0311 : 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.

所以我查看了代码页 1252,似乎“®”是由这种编码格式处理的。 (https://en.wikipedia.org/wiki/Windows-1252)

我尝试将代码格式强制为 wix,但没有任何更改。

你知道我为什么会有这些消息吗? “®”确实是问题的象征吗? 如果它在代码页 1252 中,为什么它也不被 wix 支持? 最后,我有什么解决方案?

感谢您一直阅读我的内容,我希望有人对此有所了解

【问题讨论】:

【参考方案1】:

显然这是 Visual Studio 缓存的问题。

我无法真正解释它,但在清理我的“AppData\Roaming\Microsoft\VisualStudio”文件夹并重建所有内容后,我不再遇到问题了。

【讨论】:

以上是关于Wix (candle.exe) 中的符号错误 LGHT0311,windows-1252的主要内容,如果未能解决你的问题,请参考以下文章

蜡烛.exe 访问被拒绝

Wix错误未定义的预处理器变量(错误CNDL0150)

如何在 WiX 安装程序中将应用程序添加为防火墙例外

WIX - 如何解决错误 LGHT0094:未解决的符号引用

WiX 错误:lght0094 未解决对符号的引用

使用 wix 的自定义对话框给出重复符号错误