Установщик WiX / MSI успешно запускается для удаления приложения, но приложение не было удалено

Я создал Wix установщик для своего Visual Studio 2017 проекта с помощью этого Wix Toolset Visual Studio 2017 Extension от первоначального автора Rob Mensching. Установщик успешно установил приложение, но когда я снова запускаю установщик, чтобы удалить приложение, установщик, как и ожидалось, сначала показывает вариант восстановления или удаления приложения.

Когда я выбираю параметр Uninstall, он успешно запускается, указывая на его удаление, и, наконец, показывает кнопку Finish, но когда я перехожу в меню Windows 10, приложение все еще там и работает как обычно - это явно означает, что оно не было удалено.

Я даже перезапустил компьютер, чтобы посмотреть, имеет ли это значение, но приложение все еще там и работает как обычно. Вопрос: что может быть причиной этого и что можно исправить?

Примечание: я использую последнюю version 3.11 Wix

ОБНОВЛЕНИЕ

Это надстройка VSTO. Теперь он работает следующим образом: я вручную удалил его из программы Windows 'Add \ Remove, а затем снова установил, используя Wix/MSI. А затем, когда я снова удалил его с помощью Wix/MSI, он успешно удалил его. Вопрос: почему изначально не было удаления при использовании Wix/MSI?


person nam    schedule 09.02.2019    source источник
comment
Пара обновлений ниже.   -  person Stein Åsmul    schedule 09.02.2019
comment
Вы нашли несколько удаленных вами записей в разделе «Установка и удаление программ»?   -  person Stein Åsmul    schedule 09.02.2019
comment
@ SteinÅsmul Нет, там была только одна запись.   -  person nam    schedule 09.02.2019
comment
Я предполагаю, что возможно, что старая версия была установлена ​​для каждого пользователя, а новая версия была установлена ​​для каждого компьютера. Что говорится в элементе Package для атрибута InstallScope? Проверьте старый и новый источник, если они у вас есть.   -  person Stein Åsmul    schedule 10.02.2019
comment
Для ясности, WiX Toolset - один из нескольких сборщиков пакетов MSI. Установщик Windows (например, msiexec) выполняет операции с такими пакетами. Программы и компоненты Windows (fka «Установка и удаление программ») - это реестр для любого типа установки. Для установок установщика Windows он просто перечисляет команды для операций msiexec с пакетом. Таким образом, установщик Windows должен вести себя одинаково независимо от того, откуда он вызывается или какой инструмент создает пакет; Единственные отличия заключаются в аргументах для операций.   -  person Tom Blodget    schedule 10.02.2019
comment
@ SteinÅsmul Атрибут InstallScope` элемент Package равен perMachine. Я думаю, что проблема, похоже, связана с установкой различных версий в разное время, как вы упомянули в своем ответе и комментариях. Я впервые экспериментировал с WiX установщиком в моем VS2017 проекте иногда с использованием, а иногда и без использования Wix Toolset Visual Studio 2017 Extension - это, вероятно, привело к проблеме. Я отмечу ваш ответ как answer, так как он действительно помог.   -  person nam    schedule 12.02.2019
comment
Хорошо, у вас есть чистые виртуальные машины для тестирования? Решающее значение для развертывания, но я думаю, это очевидно. Может потребоваться много работы по настройке, особенно если вам нужны определенные версии Office.   -  person Stein Åsmul    schedule 12.02.2019
comment
@ SteinÅsmul Да, верю. У меня Windows 10 Pro виртуальная машина с установленными необходимыми компонентами. Итак, это должно помочь.   -  person nam    schedule 13.02.2019


Ответы (1)


Дубликаты: вы, вероятно, устанавливали продукт несколько раз (как минимум два) во время работы над пакетом. Это происходит постоянно, особенно если вы используете автоматически сгенерированный код продукта и еще не настроили основную конструкцию обновления или руководство по обновлению отсутствует или, что еще хуже, вы настроили его на автоматическое создание. Коды обновления должны оставаться стабильными для «семейств» продуктов. По сути, все связанные выпуски, которые вы не хотите устанавливать параллельно.

Таким образом, при дублированных установках при удалении продукта удаляется только последняя установка, оставляя файлы на месте, поскольку счетчик ссылок не равен нулю, поскольку существуют другие установки. Решение состоит в том, чтобы сохранить стабильное руководство по обновлению и настроить основную конструкцию обновления. Перед этим удалите все шальные копии.

Может быть, попробуйте эту процедуру:

  • Клавиша Windows + коснитесь R
  • Введите appwiz.cpl и нажмите Enter.

Найдите в списке повторяющиеся копии продукта и удалите их.


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

person Stein Åsmul    schedule 09.02.2019
comment
Я только что добавил ОБНОВЛЕНИЕ - на случай, если у вас есть комментарии. - person nam; 09.02.2019