ICE03:无效的语言 ID。不抑制检索文件信息的解决方案
ICE03: Invalid Language Id. Solution without suppressing the retrieval of file information
我在 Visual Studio 中有一个 WiX v3 的安装项目。构建时,我在两个不同的文件上遇到相同的错误。我想在不抑制文件信息检索的情况下避免此错误。理想情况下,我想通过更改 xml 来解决此问题,以便我的同事将来更容易进行更改。
ICE03: Invalid Language Id; Table: File, Column: Language
这两个文件的问题是它们的语言是1252
。两者都是 90 年代中期的 dll,由其他人发布。
我读到我可以将 -sh
传递给 light.exe
以禁止检索文件信息。或者我可以在 运行 点亮时跳过 ICE03
。我宁愿不这样做,因为我可能会错过其他错误。
我已经尝试将产品上的 language
设置为 0
。我也尝试过在文件本身上设置默认语言。我尝试了更多与语言相关的标记,但没有成功。
在 xml 中只包含了导致错误的两个文件。以及任何支持 xml 以防感兴趣。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="MyProject" Language="1033" Version="1.0.0.0" Manufacturer="My Company" UpgradeCode="8156a540-97a9-4d3d-b345-9a6d8b833be9">
<Package InstallerVersion="200" InstallScope="perMachine" Platform="x86"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate/>
<Property Id="INSTALLLOCATION" Value="C:\"/>
<SetDirectory Action="SetInstallDir" Id="INSTALLDIR" Value="[INSTALLLOCATION]"/>
<Feature Id="ProductFeature" Title="MyProject" >
<ComponentGroupRef Id="Run32Components" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR">
<Directory Id="RRSDIR" Name="RRS">
<Directory Id="RUN32DIR" Name="RUN32">
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="Run32Components" Directory="RUN32DIR">
<Component Id="PICS2.DLL_Component" Guid="{855DFCC8-50B1-4213-81BA-68878EB31486}">
<File Id="PICS2.dll" Name="PICS.dll" Source="RUN32\PICS2.DLL" />
</Component>
<Component Id="PICSCCRW.DLL_Component" Guid="{A1859D86-1556-497D-8254-118823BF92FB}">
<File Id="PICSCCRW.DLL" Name="PICSCCRW.DLL" Source="RUN32\PICSCCRW.DLL"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
16-Bit Windows Modules: These two DLL files appear to be 16-bit Windows modules, and as such the language set seems to be a code page
and not a language code at all. I will forward to the WiX guys. Just ignore the whole problem I would say, should be fine - barring the madness of installing 16-bit components :-).
Leaving the below for future reference - just in case. Real answer
ends here.
初步链接:在此期间,让我向您提供一些相关的、预先存在的答案的链接。我假设您已经找到了至少其中之一:
- wix installer ice03 Invalid Language Id.
- Wix toolset license agreement multi-languages issue
如后一个答案所示,您可能有一个会话在玩弄整个包的代码页。不过,可能还有比这更好的修复方法。
Ad-Hoc Sample:总是不可能添加一些你没有测试过的东西并让它工作,但就是这样在没有编译器变量的情况下更清晰,在 Product
和 Package
元素中设置的 LCID:
<Product Id="*" Name="MyApp" Language="1041" Version="1.0.0"
Manufacturer="MyCompany" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Languages="1041" SummaryCodepage="932" />
LCID:
代码页:
- Creating a Database with a Neutral Code Page
- https://en.wikipedia.org/wiki/Code_page
- https://en.wikipedia.org/wiki/Windows_code_page
其他链接:
- wix incorrect font used during installation on Windows XP
我在 Visual Studio 中有一个 WiX v3 的安装项目。构建时,我在两个不同的文件上遇到相同的错误。我想在不抑制文件信息检索的情况下避免此错误。理想情况下,我想通过更改 xml 来解决此问题,以便我的同事将来更容易进行更改。
ICE03: Invalid Language Id; Table: File, Column: Language
这两个文件的问题是它们的语言是1252
。两者都是 90 年代中期的 dll,由其他人发布。
我读到我可以将 -sh
传递给 light.exe
以禁止检索文件信息。或者我可以在 运行 点亮时跳过 ICE03
。我宁愿不这样做,因为我可能会错过其他错误。
我已经尝试将产品上的 language
设置为 0
。我也尝试过在文件本身上设置默认语言。我尝试了更多与语言相关的标记,但没有成功。
在 xml 中只包含了导致错误的两个文件。以及任何支持 xml 以防感兴趣。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="MyProject" Language="1033" Version="1.0.0.0" Manufacturer="My Company" UpgradeCode="8156a540-97a9-4d3d-b345-9a6d8b833be9">
<Package InstallerVersion="200" InstallScope="perMachine" Platform="x86"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate/>
<Property Id="INSTALLLOCATION" Value="C:\"/>
<SetDirectory Action="SetInstallDir" Id="INSTALLDIR" Value="[INSTALLLOCATION]"/>
<Feature Id="ProductFeature" Title="MyProject" >
<ComponentGroupRef Id="Run32Components" />
</Feature>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR">
<Directory Id="RRSDIR" Name="RRS">
<Directory Id="RUN32DIR" Name="RUN32">
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id="Run32Components" Directory="RUN32DIR">
<Component Id="PICS2.DLL_Component" Guid="{855DFCC8-50B1-4213-81BA-68878EB31486}">
<File Id="PICS2.dll" Name="PICS.dll" Source="RUN32\PICS2.DLL" />
</Component>
<Component Id="PICSCCRW.DLL_Component" Guid="{A1859D86-1556-497D-8254-118823BF92FB}">
<File Id="PICSCCRW.DLL" Name="PICSCCRW.DLL" Source="RUN32\PICSCCRW.DLL"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
16-Bit Windows Modules: These two DLL files appear to be 16-bit Windows modules, and as such the language set seems to be a code page and not a language code at all. I will forward to the WiX guys. Just ignore the whole problem I would say, should be fine - barring the madness of installing 16-bit components :-).
Leaving the below for future reference - just in case. Real answer ends here.
初步链接:在此期间,让我向您提供一些相关的、预先存在的答案的链接。我假设您已经找到了至少其中之一:
- wix installer ice03 Invalid Language Id.
- Wix toolset license agreement multi-languages issue
如后一个答案所示,您可能有一个会话在玩弄整个包的代码页。不过,可能还有比这更好的修复方法。
Ad-Hoc Sample:总是不可能添加一些你没有测试过的东西并让它工作,但就是这样在没有编译器变量的情况下更清晰,在 Product
和 Package
元素中设置的 LCID:
<Product Id="*" Name="MyApp" Language="1041" Version="1.0.0"
Manufacturer="MyCompany" UpgradeCode="PUT-GUID-HERE">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"
Languages="1041" SummaryCodepage="932" />
LCID:
代码页:
- Creating a Database with a Neutral Code Page
- https://en.wikipedia.org/wiki/Code_page
- https://en.wikipedia.org/wiki/Windows_code_page
其他链接:
- wix incorrect font used during installation on Windows XP