Por favor, qual a diferença entre essas duas extensões de um software criado em C#?
Por favor, qual a diferença entre essas duas extensões de um software criado em C#?
Olá André, tudo bom? Vamos lá.
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.
É 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.
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.
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