ICE03: неверный идентификатор языкаРешение без подавления поиска информации о файле - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть проект установки для WiX v3 в Visual Studio.При сборке я получаю одинаковую ошибку на двух разных файлах.Я хотел бы избежать этой ошибки, не подавляя извлечение информации о файле.В идеале я хочу решить эту проблему с помощью изменений в XML, чтобы моим коллегам было легче вносить изменения в будущем.

ICE03: Invalid Language Id; Table: File, Column: Language

Проблема с обоимифайлы в том, что они имеют язык 1252.Оба являются dll с середины 90-х годов и опубликованы кем-то другим.

Я прочитал, что могу передать -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 голосов
/ 28 декабря 2018

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 :

CodePage :

Другие ссылки :

...