Дублирующиеся, но разные удаления Windows в реестре

519
Gordon

Я пытаюсь понять разницу между ключами GUID и не GUID в HKLM: \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall.

Некоторые вещи имеют ключ GUID и ключ не GUID, с очень разными UninstallStrings. Например, Autodesk Revit имеет хорошую UninstallString в ключе GUID

MsiExec.exe /X) 

Но в ключе без GUID UninstallString на самом деле является строкой патча, я думаю.

C:\Program Files\Autodesk\Revit 2019\Setup\Setup.exe /P /M RVT /LANG en-US) 

Но другие, такие как Autodesk Desktop App, не имеют ключа GUID, и UninstallString в ключе без GUID хорош.

C:\Program Files (x86)\Autodesk\Autodesk Desktop App\removeAdAppMgr.exe 

Мне интересно, это нормально, или, может быть, что-то глупое, что делает только Autodesk? И есть ли хороший ресурс Microsoft, подробно описывающий, какая информация ожидается в различных папках удаления? Пока что не могу найти ничего подробного.

РЕДАКТИРОВАТЬ: На аналогичном примечании, я нахожу Microsoft делает дубликаты тоже, но не GUID против не. Вот три разных деинсталляции с тем же DisplayName, но указанными тремя разными GUID. Кроме того, это все установки x64, но они находятся в WOW6432Node. Разочарование.

Visual C++ 2008 - x64 (KB958357) - v9.0.30729.177 C:\Windows\SysWOW64\msiexec.exe /x /qb+ REBOOTPROMPT=""  Visual C++ 2008 - x64 (KB958357) - v9.0.30729.177 C:\Windows\SysWOW64\msiexec.exe /x /qb+ REBOOTPROMPT=""  Visual C++ 2008 - x64 (KB958357) - v9.0.30729.177 C:\Windows\SysWOW64\msiexec.exe /x /qb+ REBOOTPROMPT="" 
1
Microsoft всегда стремится проявить творческий подход в своем собственном развертывании. Я полагаю, что это разные «аспекты» одной и той же базовой среды выполнения Microsoft (среда выполнения Visual C ++ 2008 - которая сопровождает определенную версию Visual Studio - не уверена, какая версия). Эти среды выполнения необходимы для некоторых - даже для большинства - приложений на C ++, скомпилированных с упомянутой версией Visual Studio. Stein Åsmul 5 лет назад 0

2 ответа на вопрос

0
HelpingHand

Когда разработчик создает приложение, он обычно выбирает способ его установки. Одним из популярных вариантов является использование установщика Windows и, следовательно, создание MSI. MSI-файл - это, по сути, база данных, которая сообщает установщику Windows, как устанавливать программное обеспечение, т.е. файлы, которые нужно удалить, reg-ключи для создания, службы для создания и т. Д. Популярные инструменты для создания файлов MSI - WiX или InstallShield .

В рамках разработки MSI продукту должен быть присвоен уникальный GUID, называемый ProductCode. Именно этот код продукта вы видите под ключом удаления. Значение UninstallString использует код продукта, поскольку установщик Windows может использовать его для удаления приложения с помощью ключа / X.

Разработчик может отказаться от использования установщика Windows и написать собственный установщик. Чтобы он отображался в разделе «Программы и компоненты», разработчику необходимо вручную создать ключи удаления для приложения. Как минимум им нужно будет установить DisplayName и UninstallString ( ref ). Маловероятно, что они создали бы GUID для идентификации приложения, но могли бы.

Если разработчик создал пользовательский установщик, он также должен предоставить какой-либо метод для удаления приложения. В результате большинство разработчиков создают отдельное приложение для удаления, на которое указывает UninstallString. Это приложение также может быть использовано для предоставления возможности изменить, восстановить или удалить приложение.

Это действительно предпочтение разработчика.

Неработающая связь с мистером Рэймондом Ченом - я тоже не смог найти его на Wayback. Может быть, копия / вставка сбой? Stein Åsmul 5 лет назад 0
исправил ссылку. HelpingHand 5 лет назад 0
0
Stein Åsmul

Хороший ответ уже опубликован, я все еще опубликую то, что начал писать, до того как ваш вопрос был удален ранее.

Эти GUIDключи, как правило Windows Installer setups(файлы с *.MSIрасширением) - стареющий стандарт для развертывания Microsoft в интенсивном использовании в корпорации.

Существует множество различных типов установщиков, но они обычно заключаются в setup.exeфайлы или в MSI filesболее новые виды форматов установщиков, такие как APPX(уже устаревшие), MSIX(появляющиеся) и т. Д. ... На самом деле существует множество возможностей.

AutoDesk, похоже, использует setup.exустановщик устаревшего стиля, который не основан на нем Windows Installer, хотя все еще возможно, что на setup.exeэто указывает оболочка, запускающая пакет установщика Windows.

Ниже я добавлю несколько ссылок на информацию о различных типах настроек и задачах, связанных с настройками (например, при извлечении файлов).


Некоторые ссылки :

Есть много других ссылок, встроенных в эти ответы на подобные вещи.