Duplicar mas diferentes Desinstalações do Windows no Registro

1

Estou tentando entender a diferença entre as chaves GUID e não GUID no HKLM: \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall.

Algumas coisas têm uma chave GUID e uma chave não GUID, com UninstallStrings muito diferentes. Por exemplo, o Autodesk Revit tem uma boa UninstallString na chave GUID

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

Mas na chave não GUID, o UninstallString é, na verdade, uma string de Patch que eu acho.

C:\Program Files\Autodesk\Revit 2019\Setup\Setup.exe /P {7346B4A0-1900-0510-0000-705C0D862004} /M RVT /LANG en-US)

Mas outros, como o Autodesk Desktop App, não têm uma chave GUID e o UninstallString na chave não GUID é bom.

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

Eu estou pensando, isso é normal, ou talvez algo bobo que só a Autodesk faz? E há um bom recurso da Microsoft detalhando quais informações são esperadas nas várias pastas Uninstall? Até agora não consigo encontrar nada detalhado.

EDITAR: Em uma nota semelhante, estou encontrando a Microsoft fazendo duplicatas também, mas não o GUID vs não. Aqui estão três Desinstalações diferentes com o mesmo DisplayName, mas três GUIDs diferentes referenciados. Além disso, todas são instalações x64, mas são encontradas no WOW6432Node. Frustrante.

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=""
    
por Gordon 19.08.2018 / 13:23

2 respostas

0

Boa resposta já postada, ainda postarei o que comecei a escrever antes de sua pergunta ser excluída antes.

As chaves GUID são geralmente Windows Installer setups (arquivos com extensão *.MSI ) - o padrão antigo da implantação da Microsoft em uso pesado em corporações.

Existem muitos tipos diferentes de instaladores, mas geralmente são agrupados como setup.exe files ou MSI files ou tipos mais recentes de formatos de instalador, como APPX (já obsoleto), MSIX (emergente) etc. .. Realmente existem muitas possibilidades.

A AutoDesk parece estar usando um estilo legado setup.ex e instalador que não é baseado em Windows Installer , embora ainda seja possível que setup.exe seja apontado como um wrapper que inicia um pacote do Windows Installer.

Vou adicionar alguns links abaixo para informações sobre vários tipos de configurações e tarefas envolvidas ao lidar com configurações (como extração de arquivos).

Alguns links :

Existem muitos outros links incorporados nessas respostas para coisas semelhantes.

    
por 19.08.2018 / 21:53
0

Quando um desenvolvedor cria um aplicativo, ele geralmente escolhe um método para instalá-lo. Uma opção popular é usar o Windows Installer e, portanto, criar um MSI. Um arquivo MSI é essencialmente um banco de dados que informa ao Windows Installer como instalar o software, ou seja, arquivos a serem soltos, chaves para criar, serviços para criar, etc. Ferramentas populares para criar arquivos MSI são WiX ou InstallShield .

Como parte da criação de um MSI, o produto deve receber um GUID exclusivo chamado ProductCode. É este código do produto que você vê na chave de desinstalação. O valor UninstallString usa o ProductCode como o Windows Installer pode usar isso para desinstalar o aplicativo usando a opção / X.

O desenvolvedor pode optar por não usar o Windows Installer e escrever seu próprio instalador. Para que isso apareça em Programas e Recursos, o desenvolvedor precisará criar manualmente as chaves de Desinstalação do aplicativo. No mínimo, eles precisariam definir o DisplayName e o UninstallString ( ref ). É improvável que eles criassem um GUID para identificar o aplicativo, mas poderiam.

Se o desenvolvedor criou um instalador personalizado, o desenvolvedor também precisará fornecer algum método para desinstalar o aplicativo. Como resultado, a maioria dos desenvolvedores cria um aplicativo de desinstalação separado, que é apontado da UninstallString. Este aplicativo também pode ser usado para apresentar uma opção para modificar, reparar ou desinstalar o aplicativo.

É realmente a preferência do desenvolvedor.

    
por 19.08.2018 / 16:22