Проект развертывания .NET: пользовательское действие, отменяющее удаление
-
22-07-2019 - |
Вопрос
У меня есть проект развертывания .NET. Я хотел бы добавить пользовательское действие удаления, которое проверяет определенные условия и при необходимости отменяет удаление. Это возможно?
Насколько я понял, можно определить только пользовательские действия, которые не могут влиять на сам основной установщик. Р>
Решение
Ответ на самом деле довольно простой, но и довольно уродливый.
В моменте настраиваемого действия, в котором я хочу отменить удаление, я просто выбрасываю ApplicationException
:
//Nono. Don't uninstall. To abort uninstall, throw an exception
throw new ApplicationException(Constants.CONST_APP_NAME + @" can't be uninstalled because the preparation hasn't been completed.");
Другие советы
Было бы удивительно, если бы это было возможно. По моему опыту, как только вы попытаетесь использовать проект установки VS для выполнения чего-либо, что нельзя перетащить в дизайнер, вы нападаете на неприятности.
Другими словами, это отстой, но я не знаю, зеленее ли трава на другой стороне (например, InstallShield), потому что я никогда не использовал это.