Почему MSI требует, чтобы исходный файл .msi продолжал деинсталляцию? - программирование

Почему MSI требует, чтобы исходный файл .msi продолжал деинсталляцию?

Как большинство из вас, вероятно, заметили, что при удалении пакета MSI Windows попросит исходный файл .msi. Почему это?

Я вижу только недостатки:

  • не является устойчивым к изменениям в сети.
  • невосприимчив к локальным изменениям диска.
  • неожиданно для пользователей.
  • обычно требует от пользователей оставить свой стол и начать крестовый поход, чтобы получить правильный компакт-диск.
  • доказывает, что установки не являются самодостаточными.
  • способствует использованию небезопасных инструментов, таких как msizap.
  • который, в свою очередь, способствует "менталитету" в следующий раз, когда я просто использую zip файл ".

Может ли кто-то пролить свет на это?

4b9b3361

Ответ 1

Fix Broken Uninstall: вы можете попробовать новейшую утилиту FixIt Uninstall от Microsoft, если у вас возникли проблемы с удалением MSI. И еще одна ссылка: удаление MSI файла из командной строки без использования msiexec (множество разных способов удаления MSI).


ОБНОВЛЕНИЕ:

Этот новый инструмент поддержки (этот инструмент теперь также устарел) можно попробовать в последних версиях Windows, если у вас есть несуществующие пакеты MSI, требующие удаления (вместо устаревших, устаревших, неподдерживаемых). MsiZap.exe).

Некоторые предлагают использовать инструмент, на который ссылается saschabeaumont: удаление без MSI файла. Если вы попробуете, и это сработает, пожалуйста, сообщите нам об этом. Обратная связь в этом ответе указывает на то, что он работает (на данный момент у меня нет застрявших настроек для тестирования).


Почему вас спрашивают об оригинальном установочном носителе? :

  • Исходный MSI не требуется для удаления, если только сам MSI не спроектирован неправильно или отсутствует кэшированный MSI (подробности см. Ниже).
  • Все установленные файлы MSI кэшируются в % SystemRoot%\Installer\*. * С использованием случайного шестнадцатеричного имени.
  • Кэшированный файл MSI используется для любых операций обслуживания, ремонта и удаления, и его достаточно для удаления в подавляющем большинстве случаев.
  • В некоторых случаях этот кэшированный файл может отсутствовать, а затем удалить не возможно вообще в некоторых случаях (некоторые теории относительно того, MSI design errors anti-virus quarantining system restore tinkering developer system in erroneous state from development work почему это может произойти - MSI design errors, anti-virus quarantining, system restore, tinkering, developer system in erroneous state from development work и etc...). См. Дополнительную информацию ниже - и ссылки для принудительного удаления или отмены регистрации продукта.
  • Исходный источник необходим только в том случае, если файлы необходимо скопировать на диск (для установки для обслуживания), или MSI выполняет явный запрос для разрешения исходного источника с помощью стандартного действия ResolveSource или с помощью настраиваемого действия (что не следует делать в правильно созданном пакете - я думаю, что пакет MS Office содержал эту ошибку ResolveSource в прошлом, заставляя всех искать свои установочные CD/DVD).
  • В предыдущих выпусках Windows этот кэшированный MSI был удален из всех кабин и, следовательно, содержал только структуру установщика и не содержал файлов.
  • Начиная с Windows 7 (MSI версии 5), файлы MSI теперь кэшируются в полном размере, чтобы избежать разрыва подписи файла, которая влияет на приглашение UAC при запуске установки (известная проблема Vista). Это может привести к значительному увеличению потребления дискового пространства (несколько гигабайт для некоторых систем). Проверьте эту статью и особенно обсуждение внизу для получения дополнительной информации.
  • Чтобы предотвратить кэширование огромного MSI файла, вы можете запустить административную установку пакета перед установкой. Это то, как компания с надлежащим развертыванием в управляемой сети будет делать что-то, и она будет удалять файлы cab и создавать точку сетевой установки с небольшим файлом MSI и файлами помимо него. Обратите внимание, что это может привести к появлению запроса UAC в некоторых случаях, поскольку извлеченный файл MSI больше не подписывается - это необходимо проверить с помощью конфигурации SOE/рабочего стола.
  • Прочитайте мой ответ в этой теме для полного описания установок администратора: Какова цель административной установки, инициированной с использованием msiexec/a? или этот похожий, но, возможно, более доступный ответ: установка администратора и его использование
  • В некоторых редких случаях кэшированный MSI (со случайным именем) может ошибочно отсутствовать, и при удалении будет запрашиваться исходный MSI для завершения удаления. Это случается не часто. Раньше было так, что можно было использовать MsiZap.exe очистить такую установку, но этот инструмент устарел, устарел и не поддерживается. Не используйте его - слишком много несовместимостей с более новыми версиями Windows, и вы создаете новые проблемы. Возможно попробовать этот инструмент поддержки вместо этого (также не рекомендуется). Единственный вариант, который я могу предложить сейчас - это ответ saschabeaumont. Если вы попробуете этот инструмент, пожалуйста, сообщите нам, работает ли он для вас. Если вы хотите выяснить, что могло привести к отсутствию кэшированного MSI, попробуйте прочитать раздел 12 здесь: Удаление файла MSI из командной строки без использования msiexec (вкратце, возможные причины колеблются от вмешательства в восстановление системы, антивирус и сценарии очистки, ошибочная ручная настройка, малое дисковое пространство, перебои с питанием, ошибки отладки в блоке разработчика, плохо спроектированные MSI файлы с дублирующимися кодами пакетов, неудачные исправления и т.д. Боюсь, что существует множество теорий, мало уверенности).
  • В качестве последнего средства вы можете попробовать восстановить систему (если она не была отключена полностью или частично), чтобы вернуться к предыдущему состоянию установки и посмотреть, решает ли это вашу проблему удаления (вы можете найти видео-демонстрации этого на YouTube или аналогичном сайте).,
  • Помните, что восстановление системы может повлиять на Центр обновления Windows, который затем должен быть применен повторно, а также на многие другие параметры системы. Я видел новые, неразрешимые проблемы установки, возникающие в результате восстановления системы, но обычно все работает нормально. Очевидно, что не используйте эту функцию для развлечения, это последнее средство, и ее лучше всего использовать для отката новых драйверов или установок, которые только что были установлены и которые, как установлено, вызывают немедленные проблемы и подобные проблемы. Чем дольше вы вернетесь назад, тем больше переделок вы создадите для себя. Много очевидных вещей, но, думаю, об этом стоит упомянуть.
  • Поскольку я упоминал о восстановлении системы, полагаю, мне следует упомянуть функцию "Последняя удачная конфигурация". Эта функция не имеет ничего общего с удалением или восстановлением системы, но является последней загрузочной конфигурацией, которая сработала или привела к работающей системе. Он может быть использован для возобновления работы вашей системы, если во время загрузки она отключится или остановится. Это часто происходит после установки драйвера. Хотя это ничего не изменит, если вы удалите ошибку (или я был бы очень удивлен).

Связанный ответ:


В дополнение к этому ответу, возможно, эта статья о различных способах удаления пакетов MSI представляет интерес. Это довольно популярная статья с большим количеством просмотров:

Ответ 2

Есть несколько причин для сохранения исходного msi:

  • Деинсталлятор использует его для определения того, какие файлы и ключи реестра были установлены, и убедитесь, что все они очищены.
  • msi может содержать код для специальных действий по удалению, которые необходимо выполнить.
  • Он позволяет выполнять операцию "ремонт" из меню "Установка и удаление программ" независимо от того, сохранил ли вы сам файл установки.

Обычным способом работы является то, что Windows сохраняет файл в кэше для вас, поэтому вам не нужно об этом думать. См. Папку% WINDIR%\Installer \. Единственная причина, по которой он попросил бы ваш оригинал msi, - это что-то не так с сохраненным файлом. Это касается большинства ваших проблем, хотя и создает новый (дисковое пространство).