Удаление загрузчика Wix

Мне нужно программно получить доступ к месту удаления загрузчика. Мне нужна эта информация, потому что некоторые файлы, которые потребуются пакетам в цепочке во время удаления, должны быть перемещены сюда после успешной установки всех пакетов.

Мне может потребоваться изменить значение UninstallString в реестре на другое место и скопировать исполняемый файл загрузчика и другие необходимые файлы в это место. Есть ли побочные эффекты при этом?


person microsoftprogrammer    schedule 14.05.2013    source источник


Ответы (1)


Вы можете добавить необходимые файлы, используя payload. Файлы упакованы в ваш boostrapper.exe и доступны во время выполнения в той же папке, где запущен ваш загрузчик. Добавьте файлы, необходимые вашему приложению-загрузчику, в полезную нагрузку приложения-загрузчика.

  <BootstrapperApplicationRef Id='ManagedBootstrapperApplicationHost'>
    <Payload SourceFile='MyBA.dll' />
    <Payload SourceFile='BootstrapperCore.config' />
    ... place additional playload files here ...
  </BootstrapperApplicationRef>

Вы можете получить к ним доступ из кода загрузчика с помощью

Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "payloadfilename");

Вы также можете добавлять файлы в определенные пакеты.

<ExePackage InstallCommand="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot;"
            UninstallCommand="/uninstall /q /norestart /ChainingPackage &quot;[WixBundleName]&quot;" >
    <Payload SourceFile="payloadfilename"/>
  </ExePackage>
person Laika42    schedule 23.05.2013
comment
Спасибо большое. Я решил эту проблему немного по-другому. Поскольку для файлов, используемых во время удаления, необходимо поддерживать структуру папок, я определил свое собственное местоположение для удаления и переместил необходимые папки/файлы в это место после успешной установки всех пакетов. Во время удаления в моем пользовательском приложении начальной загрузки я изменил текущий рабочий каталог на это предопределенное место для удаления. Затем он работает нормально, и все пакеты в цепочке могут получить доступ к необходимым файлам во время удаления. - person microsoftprogrammer; 24.05.2013