Почему метод удаления не вызывается во время установки? - PullRequest
0 голосов
/ 30 марта 2011

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

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

У меня есть общий класс Installer, который используется для обработки пользовательских действий во время установки плагинов.

Во время установки ему нужно загрузить файл XML и добавить в него новый узел со списком информации, необходимой для загрузки плагина.

Во время удаления ему просто нужно удалить этот же узел из XMLфайл.

Установка работает нормально.Когда я пытаюсь удалить плагин, метод Uninstall Installer даже не вызывается.

Если вам нужна дополнительная информация, не стесняйтесь спрашивать.

Ответы [ 4 ]

3 голосов
/ 15 апреля 2012

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

2 голосов
/ 30 марта 2011

Попробуйте удалить пользовательское действие удаления, сохраните проект и добавьте его снова.Кроме того, если вы хотите отладить пакет установки, вы можете добавить следующее:

Debugger.Launch();

В начале переопределенного метода вместо использования окон сообщений.

0 голосов
/ 04 января 2013

Вы пробовали упомянутое решение здесь

Я считаю, что иногда Visual Studio выполняет обновление на месте и фактически не удаляет старую версию.

0 голосов
/ 30 марта 2011

Подтвердили ли вы, что настраиваемое действие настроено правильно?Я бы порекомендовал вам повесить несколько MessageBoxes повсеместно, чтобы вы могли отслеживать, что происходит.

...