Почему мой MSI не будет собираться, когда я добавлю этот модуль слияния?

Это компилирует:

Product.wxs

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <Product Id="*" Name="..." Language="1033" Version="..." Manufacturer="..." UpgradeCode="...">
        <!-- omitted -->
        <Feature Id="FeatureOPC" Title="Support for OPC Components" Level="10">
            <!-- omitted -->
            <!-- <MergeRef Id="OPCLDSRedist"/> -->
        </Feature>
        <!-- omitted -->
    </Product>
    <!-- omitted -->
</Wix>

OPC.wxs

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment>
    <DirectoryRef Id="TARGETDIR">
      <!-- omitted -->
      <!-- <Merge Id="OPCLDSRedist" SourceFile="OPC_UA_Local_Discovery_Server_1.03.msm" DiskId="1" Language="1033"/> -->
    </DirectoryRef>
    <!-- omitted -->
  </Fragment>
</Wix>

Это не компилируется (две строки без комментариев):

Product.wxs

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <Product Id="*" Name="..." Language="1033" Version="..." Manufacturer="..." UpgradeCode="...">
        <!-- omitted -->
        <Feature Id="FeatureOPC" Title="Support for OPC Components" Level="10">
            <!-- omitted -->
            <MergeRef Id="OPCLDSRedist"/>
        </Feature>
        <!-- omitted -->
    </Product>
    <!-- omitted -->
</Wix>

OPC.wxs

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Fragment>
    <DirectoryRef Id="TARGETDIR">
      <!-- omitted -->
      <Merge Id="OPCLDSRedist" SourceFile="OPC_UA_Local_Discovery_Server_1.03.msm" DiskId="1" Language="1033"/>
    </DirectoryRef>
    <!-- omitted -->
  </Fragment>
</Wix>

Я получаю это предупреждение:

Таблица Directory содержит строку с первичным ключом (ключами) 'ProgramFilesFolder', который нельзя объединить из модуля слияния 'OPC_UA_Local_Discovery_Server_1.03.msm'. Это, вероятно, связано со столкновением строк с одинаковым первичным ключом (ключами) (но с другими различными значениями в других столбцах) между базой данных и модулем слияния.

Я нашел это, у которого нет разрешения.


Я получаю эти ошибки:

ICE57: Компонент 'OnlineDocumentationShortcut.4E6EDC62C0B245CF831D3C5D4806F990' содержит данные как для пользователя, так и для компьютера с KeyPath для каждого компьютера.

Я нашел этот вопрос. Это устанавливает для каждой машины. Похоже, мне нужно это "исправить". Но это часть модуля слияния.

ICE27: Действие: "InstallFiles" в таблице InstallExecuteSequence должно предшествовать действию "SelfRegModules".

Я нашел эту ссылку. Там не было никакого решения.

ICE27: Действие: "SelfUnregModules" в таблице InstallExecuteSequence должно следовать за действием "InstallValidate".

То же, что и выше.

ICE64: каталог newfolder1.4E6EDC62C0B245CF831D3C5D4806F990 находится в профиле пользователя, но не указан в таблице RemoveFile.

Я нашел этот вопрос. Тем не менее <RemoveFolder/> Элемент, вероятно, является частью модуля слияния.

ICE64: каталог newfolder2.4E6EDC62C0B245CF831D3C5D4806F990 находится в профиле пользователя, но не указан в таблице RemoveFile.

То же, что и выше.

ICE64: каталог newfolder3.4E6EDC62C0B245CF831D3C5D4806F990 находится в профиле пользователя, но не указан в таблице RemoveFile.

То же, что и выше.

ICE43: у компонента OnlineDocumentationShortcut.4E6EDC62C0B245CF831D3C5D4806F990 есть не объявленные ярлыки. Он должен использовать ключ реестра в HKCU в качестве KeyPath, а не файл.

Я нашел несколько результатов в Google, но не нашел их полезными.

ICE27: действие "SelfUnregModules" в таблице InstallExecuteSequence находится в неправильном месте. Текущий: Выбор, Правильный: Выполнение

Я нашел [this](Действие в таблице InstallExecuteSequence в неправильном месте. Current: Selection, Correct: Execution), в котором говорится, что не используются модули слияния. Объединять модули проще, чем загрузчик, так что это не является предпочтительным.

ICE27: Действие: "SelfUnregModules" в таблице InstallExecuteSequence должно следовать после действия "InstallInitialize".

То же, что и выше.


OPC_UA_Local_Discovery_Server_1.03.msm происходит от "1.03.371 модуля слияния локального сервера обнаружения (LDS)" здесь: https://opcfoundation.org/developer-tools/developer-kits-unified-architecture/local-discovery-server-lds/


Как мне включить OPC_UA_Local_Discovery_Server_1.03.msm в мой установщик?

0 ответов

Другие вопросы по тегам