Qual é a principal diferença entre os arquivos de instalação do MSI e do EXE?

12

Certamente vemos alguns arquivos .exe a serem executados, mas qual é a funcionalidade diferente dos arquivos MSI?

    
por Dhaiwat budh 13.09.2012 / 11:10

3 respostas

6

MSI é o acrônimo para Microsoft Silent Installer, ele executa o instalador .exe em segundo plano.

Ele é usado no GPO, por exemplo, se você quiser implantar um aplicativo em uma Infraestrutura do Windows que está gerenciando, criar uma nova regra de GPO com o MSI e o MSI será instalado em todas as máquinas sem intervenção do usuário .

O GPO é "Objeto de Diretiva de Grupo", que "fornece o gerenciamento centralizado e a configuração de sistemas operacionais, aplicativos e configurações de usuários em um ambiente do Active Directory".

    
por 13.09.2012 / 11:14
12

O que é um instalador? Bem, um instalador prepara um sistema para permitir que um programa seja executado: ele instala esse programa. Durante esse processo, um instalador (no Windows) pode copiar arquivos em locais do sistema, colocar atalhos para iniciá-lo, atualizar bibliotecas, remover versões mais antigas, etc. Não existe um padrão ou formato de instalador universal; qualquer programa que executa essas ações ("instala" outro programa) pode ser chamado de instalador.

Um arquivo "exe" no Windows é conhecido como o arquivo Portable Executable e contém instruções arbitrárias, seja uma máquina nativa código ou .NET bytecode. Não há nada sobre o formato PE que irá identificá-lo como um instalador. Claro que, com código de máquina arbitrário, você pode escrever um instalador - e os instaladores "exe" que você vê adotam essa abordagem.

Algumas pessoas escrevem seus próprios instaladores personalizados. Outros usam geradores de instaladores para economizar tempo e esforço; estes incluem NSIS, InnoSetup, InstallShield e muito mais.

MSI é um formato específico usado para armazenar informações sobre uma instalação, um banco de dados sobre as etapas a serem executadas e quais arquivos para colocar onde. Por si só, não é executável; Na verdade, ele é interpretado por msiexec.exe em sistemas Windows. Este intérprete seguirá as etapas descritas no arquivo MSI. Você poderia, em teoria, criar qualquer exe que usa um banco de dados semelhante ao MSI (e NSIS, InnoSetup, etc., fazer algo semelhante).

O que torna a MSI especial é que ela é incluída e interpretada por ferramentas internas e também integrada ao Active Directory para facilitar a implantação em várias máquinas em um ambiente corporativo, e a resposta da Clem aborda isso com mais detalhes.

    
por 09.07.2014 / 18:27
6

Os arquivos MSI são arquivos de banco de dados (especificamente bancos de dados MS-SQL) que descrevem a instalação por meio de tabelas de banco de dados e instalam por meio de um conjunto complexo de sequências de instalação definidas no próprio arquivo MSI.

Os arquivos MSI não estão sendo instalados como arquivos EXE em segundo plano como as gravações "Clem" - eles são consumidos pelo Mecanismo do Windows Installer acessível através do siexec.exe interface da linha de comandos . Ou talvez tente amostras de linha de comando msiexec.exe anotadas pelo Advanced Installer . Em seguida, a própria instalação é executada por meio de duas sequências diferentes: a seqüência da interface com o usuário e a sequência de instalação real - a última é executada no contexto do sistema usando a conta LocalSystem . Essa organização é necessária para permitir aos administradores direitos temporários do instalador ou direitos elevados , que é o termo adequado.

Instaladores de EXE podem ser qualquer coisa. Na maioria das vezes, são instaladores baseados em script de estilo antigo que não são baseados em bancos de dados, mas um arquivo EXE também pode ser um wrapper contendo um arquivo MSI e componentes de tempo de execução associados. Tudo depende e deve ser investigado em cada caso particular.

    
por 20.07.2014 / 03:21