Запрос источника контейнера: Проблема WixAttachedContainer - PullRequest
0 голосов
/ 15 октября 2019

Всем доброго времени суток,

При работе с Wix мне трудно решить следующее сообщение об ошибке: Запрос источника контейнера: WixAttachedContainer

Сценарий:

  • У нас есть проект установки с шаблоном Wix по умолчанию, который действует как пакет для нескольких пакетов, который называется MyBundle.exe.
  • У нас есть управляемое приложение-загрузчик wix exe с WPFи C #, который действует как автономный установщик, но его необходимо включить в пакет, указанный выше, под названием MyApp.exe.
  • MyApp.exe правильно устанавливается при установке MyBundle.exe.
  • При удалении MyBundle.exe и наличии DetectCondition для удаления MyApp.exe. MyApp.exe удаляется правильно.

Проблема:

  • Существует сценарий, когда MyBundle.exe удаляется, но должен покинуть MyApp. .exe установлен позади.
  • После удаления MyBundle.exe и попытки удаления MyApp.exe в журнале появляется следующая ошибка: Запрос источника контейнера: WixAttachedContainer, путь: «Path_To_EXE»

Если я установлю MyApp.exe как автономный и удалю его, все будет работать нормально. Если я устанавливаю MyBundle.exe (MyApp.exe входит в MyBundle.exe) и удаляю MyApp.exe перед удалением MyBundle.exe, это также работает нормально.

Я прочитал журналы MyApp.exe, гдевозникает ошибка, и я обнаружил, что MyApp.exe пытается получить доступ к папке кэша MyBundle.exe Запрашивать источник контейнера: WixAttachedContainer, путь: C: \ ProgramData \ Package Cache \ {Bundle_GUID} \ Dependencies \ MyApp. exe Но на данный момент этой папки больше нет в системе.

Конфигурация ExePackage в MyBundle.exe выглядит следующим образом:

<ExePackage Id="MyApp_Package"
            Description="MyApp Package"
            DisplayName="MyApp Package"
            SourceFile="My_Path_To_Package"
            Compressed="yes"
            Permanent="yes"
            PerMachine="yes"
            Vital="yes"
            Cache="yes">
</ExePackage>

Я пробовал несколькокомбинации тегов Permanent, Cache, но пока безрезультатно.

Я уже пытался подключить метод ResolveSource внутри кода C # в MyApp.exe, следуя следующим инструкциям: Managed Bootstrapper Application "Не удалось определить источник для файла ", но безуспешно.

Может ли кто-нибудь из вас указать мне правильное направление?

ОБНОВЛЕНИЕ: Обе моиBundle.exe и MyApp.exe, а также MSI включены подписаны с помощью signtool.

Спасибо.

1 Ответ

0 голосов
/ 16 октября 2019

Взгляните на "insignia"

https://wixtoolset.org/documentation/manual/v3/overview/insignia.html

Недостаточно просто использовать signtool для подписания файла Boosterpper EXE. Пакет внутри него также должен быть подписан.

...