Добавление пользовательского действия dll для установки щитового проекта с ограниченным тиражом через модуль слияния, созданный через wix

Я создал этот проект модуля слияния wix и добавил к нему пользовательское действие dll:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Module Id="MergeModule1" Language="1033" Version="1.0.0.0">
    <Package Id="cffa568e-1bf0-4eb3-bee3-eb5801a0bbd0" Manufacturer="Microsoft" InstallerVersion="200" />

    <Binary Id="myCustomActionsDLL" SourceFile="CustomAction1.CA.dll" />

    <CustomAction
    Id="CA_myCustomAction"
    BinaryKey="myCustomActionsDLL"
    DllEntry="CustomAction1"
    Execute="deferred"
    Return="asyncWait" />

    <InstallExecuteSequence>
      <Custom Action="CA_myCustomAction" Before="InstallFinalize" />
    </InstallExecuteSequence>

  </Module>
</Wix>

В моем проекте установки InstallShield Limited Edition я нажимаю Redistributables а затем перейдите к файлу MergeModule1.msm и добавьте его.

Когда я запускаю созданный MSI, он успешно устанавливается, но кажется, что пользовательское действие не запускается, потому что я не вижу файл c:\test.txt:

[CustomAction]
        public static ActionResult CustomAction1(Session session)
        {
            File.WriteAllText(@"c:\test.txt", session.GetTargetPath("") + "-----" + session.GetSourcePath(""));

            return ActionResult.Failure;
        }

Когда я открываю файл MSI, созданный в ORCA, я вижу, что Custom Action есть ли в InstallExecuteSequence Таблица.

Что может быть причиной того, что это не выполняется?

1 ответ

Решение

Устранение неисправностей должно начинаться с записи подробного журнала, а затем чтения его на наличие ошибок.

msiexec / I foo.msi / l * v install.log

Я предполагаю, что если вы добавите атрибут Impersonate="no" и измените атрибут Return на "check", вы получите лучшие результаты.

Я использую модули слияния WiX с InstallShield Limited Edition все время. Я рекомендую прочитать следующее:

Этапы установки и параметры выполнения в сценарии для настраиваемых действий в установщике Windows

Рабочие процессы совместной установки с использованием бесплатных инструментов

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