ICE03:无效的语言ID。不抑制文件信息检索的解决方案

时间:2018-12-28 18:14:50

标签: wix windows-installer

我在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>

1 个答案:

答案 0 :(得分:0)

  

16位Windows模块 :这两个DLL文件似乎是16位Windows模块,因此该语言集似乎是一个代码页   根本不是语言代码。我将转发给WiX家伙。只需忽略整个问题,我会说,应该没问题-除非安装16位组件的疯狂行为:-)。

     

为防万一,请将以下内容留作以后参考。真实答案   在这里结束。


初步链接 :在此过程中,让我向您推荐一些指向相关的,已有的答案的链接。我认为您已经找到至少其中之一:

从后一个答案中可以看出,您可能需要进行一次整个包装的代码页会话。也许有比这更好的修复程序。


临时样本 :始终无法添加未经测试且可以正常运行的内容,但是这样一来,无需编译器变量和设置LCID即可更加清楚在 Product Package 元素中:

<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

代码页

其他链接