1
resposta

Qual a diferença entre a extensão ".msi" e ".exe"?

Por favor, qual a diferença entre essas duas extensões de um software criado em C#?

1 resposta

Olá André, tudo bom? Vamos lá.

Definições

Um arquivo com extensão .exe é um arquivo que contém código executável.

Um arquivo com extensão .msi é um arquivo de dados, referente à instalação de algum programa.

Semelhanças

É comum ver arquivos de instalação com qualquer uma das extensões.

Ambos são muito utilizados e podem ser executados com um duplo clique.

Diferenças

O arquivo .msi não representa código executável sozinho. Ao abrir um arquivo .msi você na verdade está abrindo um programa chamado msiexec.exe que é o responsável por executar o arquivo .msi. Em um computador sem o programa msiexec.exe (ou versões antigas dele como msiinsta.exe ou msiinstw.exe), você não consegue abrir um arquivo .msi.

Já um arquivo .exe é um programa completo, podendo ser desde algo que abre seu terminal e imprime Hello, World! até algo complexo como o Adobe Photoshop.

Confusão

O .msi é instalado utilizando uma interface visual padrão do Windows, que é a interface do msiexec.exe.

Quando você encontra um instalador com a extensão .exe, na verdade você em geral tem um arquivo .msi embutido dentro de um instalador customizado ou de um programa simples, que busca por diversas versões dos instaladores padrão. Aí a descompactação do arquivo .msi é feita por baixo dos panos, através do programa casca que é o arquivo .exe que você vê.

Pode ser também que o arquivo .exe não contenha um arquivo .msi embutido e sim algum outro sistema de instalação customizado.


Espero ter conseguido resolver sua dúvida, mas caso ainda reste alguma não hesite em perguntar mais!

Um abraço e bons estudos