É viável/sensato agrupar um instalador Inno Setup dentro de um MSI para facilitar a distribuição via AD?

StackOverflow https://stackoverflow.com/questions/71203

  •  09-06-2019
  •  | 
  •  

Pergunta

Nosso instalador foi escrito com Inno Setup e estamos muito satisfeitos com ele.Mesmo assim, alguns clientes continuam solicitando um instalador MSI que possam distribuir mais facilmente por meio do Active Directory.Já fizemos alguns esforços para fazer com que o instalador lidasse muito bem com instalações automatizadas e autônomas, estendendo os recursos do Inno Setup /LOADINF-mecanismo com nossas próprias opções.

Para satisfazer os clientes que solicitam o MSI, estive pensando em simplesmente agrupar nosso instalador regular dentro de um MSI, possivelmente criado usando WIX.A questão é:posso manter a alta configurabilidade que nosso instalador atual oferece dessa forma?Como eu exporia as opções do instalador do Inno Setup por meio do MSI externo no cenário de instalação autônoma/em massa?

Observe que ainda não cheguei ao ponto de me aprofundar na criação de MSI e WIX.No momento, só estou interessado em saber se as pessoas que sabem do que estão falando acham que esta seria uma abordagem viável/sensata para investir nossa energia em primeiro lugar...

Editar:] Inicialmente, pensei que poderia fazer com a abordagem de extração e execução de temperatura, ou seja,o MSI serviria simplesmente como um recipiente para entregar o instalador Inno ao PC de destino e executá-lo lá em /VERYSILENT-modo.Mas acho que os clientes que solicitam o MSI também querem desinstalar ou até modificar a instalação de um local central e acho que isso não será possível nesse cenário, não é?

P.S.:Também temos uma cópia antiga do WISE para MSI aqui, mas essa experiência foi na verdade a razão pela qual começamos a usar o Inno para começar...

Foi útil?

Solução

Não, não há como fazer isso mantendo a funcionalidade que seus clientes estão solicitando “implicitamente”.A única 'embalagem' no MSI que você pode fazer é extraí-lo na instalação e iniciar o instalador do InnoSetup a partir do local temporário para onde você extraiu.MSI é uma forma fundamentalmente diferente de trabalhar:InnoSetup (e NSIS e a maioria dos outros instaladores) adotam uma abordagem centrada no código:você 'programa' as 'etapas' para instalar seus dados.MSI é um banco de dados e adota uma abordagem “centrada em dados”:você indica quais arquivos devem ser instalados e o 'tempo de execução' do MSI faz o resto.Isso lhe dá controle de versão e controle exato do que vai para onde.

Resumindo, para dar aos seus clientes o que eles desejam (ou seja, a facilidade de implantação que o MSI traz com o AD), você precisará de MSIs “adequados”.Boa sorte com isso, é uma grande dor, IMHO.Mas dá bons resultados quando você domina o MSI e o WiX.

Outras dicas

Eu mesmo já tive esse problema muitas vezes.Portanto, criei uma forma padrão de abordar esse problema e resultou em um assistente que irá guiá-lo pelas etapas.A ferramenta oferecerá suporte ao seguinte:

  1. Envolva o exe em um MSI.
  2. Suporte para desinstalação.
  3. Mostre apenas um programa em "Adicionar ou remover programas".
  4. Permite que você passe argumentos de linha de comando, como /SILENT, para a configuração incorporada ao executar o pacote MSI com MSIEXEC.EXE.

Você pode obtê-lo em http://www.exemsi.com (a versão básica é gratuita)

Use meu formulário de contato e me diga o que você pensa :-)

Em resposta à sua edição:sim, o que você descreve impedirá atualizações (além de excluir/reinstalar) e configuração remota, pois o banco de dados MSI não saberá nada sobre o conteúdo do seu instalador.

Muitos pacotes de instalação iniciaram o 'suporte' do MSI desta forma:O InstallShield fez, por exemplo.Essa é a principal razão pela qual os descartei, porque os instaladores feitos dessa forma são inúteis para fins de MSI.Não sei se as versões recentes do InstallShield são melhores, a última vez que verifiquei foi há 5 anos.

É muito fácil fazer um kit wrapper que instala automaticamente o INNOSETUPper do MSI.Para funcionalidades básicas (instalar/desinstalar), isso é suficiente.A maioria dos configuradores não implementa o reparo de qualquer maneira.

  1. crie o script Silent.inf para INNO Setup (opcional)

  2. crie install.bat que chama

    myinnosetup.exe /silent /NOCANCEL /norestart /Components="xxx"

    você pode usar /muito silencioso
    você pode carregar as configurações de Silent.inf com /LOADINF="silent.inf"

  3. crie um arquivo de configuração MSI que chame install.bat (com parâmetros, se necessário)

  4. entregue todos os 4 arquivos ao seu cliente e ele poderá implantar seu configurador Inno com SMS ou ActiveDirectory e todos ficarão felizes :)

Eu diria que é possível fazer tudo o que você gostaria com um Inno Setup empacotado em MSI, mas está longe de ser trivial, e usar o WiX pode tornar essa tarefa específica mais difícil.Em suma, eu realmente não recomendaria isso.

Mas se você realmente quiser...

Os arquivos MSI são simplesmente arquivos de banco de dados com instruções de script adicionais e geralmente incorporam o arquivo .cab que contém o que você realmente deseja instalar.

Se você usar o Wise, você gerará scripts padrão aos quais poderá adicionar condições do Windows Installer e controlar os eventos em um grau mais preciso (instalar, reparar, modificar, desinstalar) para que eles chamem ações equivalentes em seu script de instalação do Inno Setup, o que seria precisa ser instalado e mantido em uma pasta temporária.

Não faz sentido misturar tecnologias de instalação.

Se você estiver mixando, terá o primeiro problema com a desinstalação.sem alterações você obtém 2 desinstaladores do seu programa.

existem alguns artigos começando com o instalador do Windows na "entwickler magazine"

  • Entwickler Magazin (Ausgabe:03.09/15.04.2009) Artigo:Msi-Pakete MIT Open-Software Erzeugen Teil 4
  • Entwickler Magazin (Ausgabe:02.09/12.02.2009) Artigo:Msi-pakete mit
  • Entwickler Magazin (Ausgabe:01.09/10.12.2008) Artigo:Msi-pakete mit
  • Entwickler Magazin (Ausgabe:06.08/15.10.2008) Artigo:Pacote MSI com software de código aberto criado

http://entwickler-magazin.de/

O instalador do Windows deve ser a única tecnologia para suas instalações.é à prova de futuro e é estável!

Envolver um Inno Setup em um pacote MSI não é uma tarefa trivial.No entanto, é possível.Existem muitas ferramentas gratuitas que podem ser usadas para fazer isso.Você deve escolher um que também suporte desinstalações e atualizações.

Encontrei apenas uma ferramenta gratuita que oferece suporte a atualizações e desinstalações.Confira http://www.exemsi.com/inno-setup-and-msi

Fazer isso seria praticamente equivalente a entregar um arquivo ZIP e chamar unzip ao final da instalação.

Com essa abordagem, o AD e o Windows Installer seriam enganados como se estivessem lidando com a instalação adequada do MSI, mas como não é o caso, o tiro sairá pela culatra na primeira ocasião.

Não vá por aqui.

E o WiX é um conjunto de ferramentas superior ao InnoSetup, de qualquer maneira, então o tempo que você gastará aprendendo e portando será compensado por um melhor suporte de colaboração.

embora o último comentário seja viável e viável, mudar para o MSI é a melhor maneira de lidar com isso.

quase todas as grandes organizações estipulam apenas o MSI, há inúmeras razões para isso.

1) Primeiro é a facilidade de implantação 2) mais importante para alguns é a sociabilidade da aplicação 3) Auto -cura

O inno setup e outras ferramentas semelhantes que não implementam o Windows Installer simplesmente não podem oferecer sociabilidade de aplicativos da mesma forma que o Windows Installer.

você precisa entender que o Inno setup é um software projetado para implantar um único aplicativo.

O Windows Installer é uma estrutura completa para lidar com sociabilidade, personificação do usuário, elevação do usuário, autocura e correção do perfil do usuário.

Os dois não têm funcionalidade nem remotamente próxima, em minha opinião, nenhuma configuração está completa e totalmente fora do curso em termos de comparação com o instalador do Windows.

Ele pode criar instaladores bem-sucedidos?Sim, é fácil de usar?Sim, cria bons instaladores únicos?Sim, é a melhor opção para a empresa?não

As primeiras ferramentas desenvolvidas pela Microsoft "SMS Installer" foram o innosetup há 10 anos.As coisas mudaram drasticamente no mundo da instalação e o Inno Setup simplesmente não acompanhou o ritmo dessa mudança.

Preciso inserir um valor custome no silencioso.inf (não um valor de configuração de configuração inno estabelecido) que parece que LOADINF permite isso.

Nota: Se você usar makemsi você não precisa incluir um morcego, pois você pode usar $WrapInstall.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top