1

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

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

MsiExec.exe /X{7346B4A0-1900-0510-0000-705C0D862004})

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

C:\Program Files\Autodesk\Revit 2019\Setup\Setup.exe /P {7346B4A0-1900-0510-0000-705C0D862004} /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 {8CCEA24C-51AE-3B71-9092-7D0C44DDA2DF} /qb+ REBOOTPROMPT=""

Visual C++ 2008 - x64 (KB958357) - v9.0.30729.177
C:\Windows\SysWOW64\msiexec.exe /x {C3A57BB3-9AA6-3F6F-9395-6C062BDD5FC4} /qb+ REBOOTPROMPT=""

Visual C++ 2008 - x64 (KB958357) - v9.0.30729.177
C:\Windows\SysWOW64\msiexec.exe /x {F6F09DD8-F39B-3A16-ADB9-C9E6B56903F9} /qb+ REBOOTPROMPT=""

2 ответа2

0

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

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

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

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

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

0

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

Ключи GUID как правило, представляют собой Windows Installer setups (файлы с *.MSI extension) - устаревший стандарт развертывания Microsoft для интенсивного использования в корпорациях.

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

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

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


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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .