Как запустить настраиваемое действие ПОСЛЕ того, как файлы были удалены во время удаления MSI?

Во время удаления пакета интеграции с Visual Studio, который я пишу, мне нужно запустить "devenv.exe /setup", чтобы обновить интерфейс пользователя VS и удалить информацию о пакете с экрана заставки / справки.

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

Есть идеи? Мне просто нужно запустить devenv в конце установки, я не связан с пользовательскими действиями.

2 ответа

Решение

Оказалось, что хитрость заключалась в том, чтобы использовать новое средство Deployment Tools Foundation от MS, чтобы превратить мои управляемые функции в неуправляемую DLL, полностью отказавшись от класса Installer. Затем я использую Orca (редактор MSI), чтобы добавить настраиваемое действие в определенное время установки.

Класс Installer поддерживает только "отложенные" пользовательские действия, которые должны выполняться в определенное время.

Вы можете написать собственное действие как Выполнить коммит. Это означает, что он будет работать только после успешного удаления. Условие это как REMOVE="ALL" чтобы убедиться, что он запускается только при удалении.

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