Atualizar ProductName do produto existente

Oct 09 2020

Eu criei um instalador exe usando o Inno Setup e empacotei em um MSI usando o MSIWrapper .

Para fazer isso, inseri as seguintes linhas no arquivo iss (InnoSetup):

[...]
#define MyAppName "New_product_name"
AppName={#MyAppName}
AppId={#MyAppName}
[...]

E as seguintes linhas no arquivo de configuração XML do MSIWrapper:

[...]
<ProductName Detect="" Value="Value" />
[...]

Eu gostaria de mudar o nome do produto mostrado na seção Desinstalar do Painel de Controle .

Se eu alterar o iss MyAppName da seguinte forma:

[...]
#define MyAppName "New_product_name"
AppName={#MyAppName}
AppId={#MyAppName}
[...]

ou o XML de configuração da seguinte forma:

[...]
<ProductName Detect="" Value="New_product_name" />
[...]

ou ambos e eu realizo uma atualização de dois programas diferentes , chamados Old_product_name e New_product_name , são mostrados no painel de controle .

Como posso proceder para alcançar meu objetivo?

Muito obrigado,

Daniele

Respostas

1 SteinÅsmul Oct 12 2020 at 23:55

Ferramenta preferida de MSI: MSI é complexo. Você deve usar uma ferramenta MSI adequada ou confiar totalmente em uma tecnologia de instalador legado - em minha opinião. Esses invólucros não parecem confiáveis. Podemos perguntar o que é este software e como será usado? (afeta o que faz sentido fazer).

O que segue não é uma resposta para MSIWrapper, mas um curso intensivo em MSI para entender o que você está vendo e, potencialmente, selecionar uma ferramenta melhor para criar MSI se necessário (você pode aceitar o que tem).


Entradas ARP : Para pacotes MSI, duas entradas no miniaplicativo Adicionar / Remover geralmente significa que duas versões do mesmo MSI foram instaladas duas vezes - sem funcionar como uma atualização (o que removeria a versão anterior).

Atualização principal do MSI : Uma atualização principal do MSI é uma desinstalação de uma versão existente do MSI e, em seguida, a instalação da nova versão do MSI com várias opções de agendamento controlando a ordem em que isso acontece. Os mecanismos para controlar isso são encontrados principalmente na tabela de atualização dentro do MSI arquivos. Se você deseja que as atualizações do MSI funcionem, esta tabela deve ser criada . Quando bem feito, a versão anterior desaparece como parte da instalação do novo pacote MSI. Não estou familiarizado com a forma como isso é feito usando o MSIWrapper, mas abaixo estão alguns exemplos para mostrar como a tabela de atualização funciona.

Alguns petiscos:

  • Os arquivos MSI não são arquivos zip, mas sim arquivos de armazenamento estruturados em COM - essencialmente reduzidos de bancos de dados SQL Server ( mais informações ). Você pode visualizá-los com o Orca e algumas outras ferramentas .
  • Há uma série de coisas que podem fazer com que uma atualização principal falhe, aqui estão algumas causas de uma atualização principal com falha - que resultará em duas entradas em adicionar / remover programas (como você descreve).

Como criar uma grande atualização com várias ferramentas:

WiX :

  • https://wixtoolset.org/documentation/manual/v3/howtos/updates/major_upgrade.html
  • https://support.firegiant.com/hc/en-us/articles/230912187-Implement-major-upgrade-

Installshield :

  • Criação de pacotes de atualização MSI (recomendado)
  • https://docs.revenera.com/installshield26helplib/helplibrary/MajorMinorSmall.htm
  • Durante a desinstalação do produto atualizado, é feita referência ao arquivo msi de construção antigo para desinstalação

Instalador avançado :

  • Vídeo: Criando atualização principal MSI (recomendado)

Links :

  • MSI tem alguns benefícios importantes e algumas peculiaridades
  • Atualização principal do WiX MSI
MartinPrikryl Oct 09 2020 at 21:23

O valor da AppIddiretiva é a chave para a entrada na lista de programas.

Se você quiser alterar o nome do aplicativo, altere o AppName, mas mantenha o antigo AppId.

Isso é o oposto de Criar automaticamente uma nova entrada em "Programas e Recursos" para cada nova versão .