Как запустить настраиваемое действие ПОСЛЕ того, как файлы были удалены во время удаления MSI?
Во время удаления пакета интеграции с Visual Studio, который я пишу, мне нужно запустить "devenv.exe /setup", чтобы обновить интерфейс пользователя VS и удалить информацию о пакете с экрана заставки / справки.
Однако он должен запускаться после удаления всех файлов надстроек и пакетов. Моя текущая настройка (с использованием настраиваемого действия класса Installer, вызываемого на этапе удаления) приводит к тому, что devenv.exe запускается слишком рано, до того, как файлы действительно будут удалены. Это означает, что информация на заставке не обновляется.
Есть идеи? Мне просто нужно запустить devenv в конце установки, я не связан с пользовательскими действиями.
2 ответа
Оказалось, что хитрость заключалась в том, чтобы использовать новое средство Deployment Tools Foundation от MS, чтобы превратить мои управляемые функции в неуправляемую DLL, полностью отказавшись от класса Installer. Затем я использую Orca (редактор MSI), чтобы добавить настраиваемое действие в определенное время установки.
Класс Installer поддерживает только "отложенные" пользовательские действия, которые должны выполняться в определенное время.
Вы можете написать собственное действие как Выполнить коммит. Это означает, что он будет работать только после успешного удаления. Условие это как REMOVE="ALL"
чтобы убедиться, что он запускается только при удалении.