Quais são as diferenças específicas entre o arquivo .msi e o arquivo setup.exe?


193

Eu procurei muito, mas todas são respostas adivinhadas. Ajude-me a encontrar a resposta exata.




Eu queria instalar um programa que acompanha os instaladores EXE e MSI. Eu instalei pela primeira vez a partir do MSI, que instalava apenas os arquivos do programa (sem pré-requisitos ou dependências e não criava ícones no Menu Iniciar). Quando iniciei o programa manualmente, ele falhou ao dizer que algumas DLLs estavam ausentes. A instalação a partir do EXE também instalou outras coisas, e o produto funcionou perfeitamente. Eu diria que, se um fabricante de software fornecer uma opção EXE e MSI para instalação, use o EXE.
James L.

Respostas:


232

Um MSI é um banco de dados do Windows Installer. O Windows Installer (um serviço instalado com o Windows) usa isso para instalar o software no seu sistema (por exemplo, copiar arquivos, definir valores do registro, etc ...).

Um setup.exe pode ser um bootstrapper ou um instalador não-msi. Um instalador não-msi extrairá os recursos de instalação de si mesmo e gerenciará sua instalação diretamente. Um bootstrapper conterá um MSI em vez de arquivos individuais. Nesse caso, o setup.exe chamará o Windows Installer para instalar o MSI.

Alguns motivos pelos quais você pode querer usar um setup.exe :

  • O Windows Installer permite apenas a instalação de um MSI por vez. Isso significa que é difícil ter um MSI instalando outros MSIs (por exemplo, dependências como o .NET framework ou o C ++ runtime). Como um setup.exe não é um MSI, ele pode ser usado para instalar vários MSIs em sequência.
  • Você pode querer um controle mais preciso sobre como a instalação é gerenciada. Um MSI possui regras muito específicas sobre como ele gerencia as instalações, incluindo instalação, atualização e desinstalação. Um setup.exe fornece controle completo sobre o processo de configuração do software. Isso só deve ser feito se você realmente precisar de um controle extra, pois é muito trabalhoso e pode ser complicado acertar.

7
Eu estava indo para escrever isto - este é provavelmente o que ele está procurando
Mongoose

1
Na minha experiência, construir um instalador MSI é muito trabalhoso, comparado à criação de um instalador baseado em exe. Isso depende muito das ferramentas utilizadas para criar o instalador em primeiro lugar. Infelizmente, todas as ferramentas instaladoras baseadas em MSI que eu vi foram ferramentas GUI comerciais ou ferramentas complexas baseadas em WiX. Nenhum dos quais atende às minhas necessidades particularmente bem (por exemplo, criando instaladores automaticamente com um script).
Craftworkgames

Então, eu ainda estou me perguntando por que o MSI existe. Que problema ele estava tentando resolver quando o exe parece funcionar bem?
The Muffin Man

14

Arquivos .msi são arquivos do Windows Installer sem o tempo de execução do Windows Installer, o setup.exe pode ser qualquer programa executável (provavelmente aquele que instala coisas no seu computador)


9

MSI é um arquivo de instalação que instala seu programa no sistema em execução.

O Setup.exe é um aplicativo (arquivo executável) que possui arquivos (s) msi como um dos recursos. A execução do Setup.exe, por sua vez, executará o msi (o instalador) que grava seu aplicativo no sistema.

Editar (conforme sugerido no comentário): os arquivos executáveis ​​da instalação não têm necessariamente um recurso MSI internamente


Os arquivos executáveis ​​de instalação não têm necessariamente um recurso MSI internamente.
Jkmartindale

-9

O MSI é basicamente um instalador da Microsoft incorporado ao Windows. Ele associa componentes a recursos e contém informações de controle de instalação. Não é necessário que este arquivo contenha arquivos reais requeridos pelo usuário, ou seja, os programas aplicativos que o usuário espera. O MSI pode conter outro setup.exe dentro dele, que o MSI envolve, que realmente contém os arquivos necessários ao usuário.

Espero que isso esclareça suas dúvidas.


13
Isso é confuso e geralmente incorreto - pois os MSIarquivos geralmente NÃO envolvem os setup.exearquivos, mas vice-versa.
Flak DiNenno 19/03/2014

"O MSI pode conter outro setup.exe dentro do qual o MSI envolve" está incorreto! Pelo contrário, o inverso é verdadeiro: um .exe possui um .msi dentro dele.
ONE
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.