Instalação do .NET Framework com meu aplicativo usando MSI
-
03-07-2019 - |
Pergunta
Eu criei um projeto de configuração no VS2008. Meu aplicativo WinForms usa .NET 2.0, então escolhi a pré -requisição .NET 2.0 e construí o projeto de configuração.
Quando eu executo meu setup.msi em um PC limpo, ele detecta corretamente que o .NET está ausente e pergunta se deve ser instalado. Após uma instalação bem -sucedida do .NET, o instalador simplesmente sai e não continua com a instalação do meu aplicativo (acho que deveria).
Quando executo o arquivo MSI em um PC com .NET já instalado, meu aplicativo é instalado corretamente.
Existe alguma maneira de instalar o .NET 2.0 e meu aplicativo juntos em uma etapa?
Solução
Como você instalou o produto?
O projeto de configuração produzirá dois arquivos:
- um pacote de instalador do Windows (.msi) e
- um chamado bootstrapper (setup.exe)
O Bootstrapper verificará a presença de qualquer pré-requisito que você especificou e possivelmente baixe e instale-o se ainda não estiver instalado e continue a instalar seu aplicativo (ligando para o .msi). Portanto, você deve sempre iniciar o setup.exe para instalar seu aplicativo e não o arquivo .msi (a menos que saiba que todos os pré-requisitos estão no sistema de destino).
Como diz Krakkos, o Bootstrapper instalará os pré-requisitos e seu aplicativo (ou seja, seu arquivo .msi). No entanto, não estou ciente de nenhuma definição de configuração que impeça o bootstrapper de instalar o MSI.
Para solucionar problemas, você pode tentar criar um log da sua instalação e procurar problemas no arquivo de log.
Outras dicas
Obrigado Divo,
Eu estava executando o arquivo msi.
Existem limitações ao executar o arquivo setup.exe? Se eu me lembrar corretamente, tentei executá -lo no Windows 2000 e ele não foi executado. Consegui executar apenas o arquivo MSI. Vou verificar um PC com o Clean Win2000 e voltar.
EDIT: Eu tentei no Windows 2000 SP4 limpo e aqui estão os resultados:
- Setup.exe não será executado com uma mensagem sobre a falta do HEAPSESTINFORMAÇÃO EM KERNEL32.DLL
- Setup.msi não será executado (a extensão .msi é desconhecida)
Então eu instalei manualmente o Windows Installer 3.1:
- Setup.exe ainda não será executado com a mesma mensagem de erro
- Setup.msi será executado bem -sucedido (mas instalará apenas o .NET sem meu aplicativo ... meu problema inicial)
No Windows XP, o setup.exe funciona sem problemas.
Parece que os usuários do Win2000 terão que instalar meu aplicativo manualmente instalando o Windows Installer 3.1, .net 2.0 e depois meu aplicativo. Mesmo quando o .NET é instalado manualmente, o setup.exe ainda mostrará a mesma mensagem de erro no Win2000 SP4.
Editar: a edição Win 2000 pode ser corrigida instalando o Atualização Rollup 1 para Windows 2000 SP4 (KB891861).
This episode of Hanselminutes goes into great detail about how Paint.Net arranges for downloading & installing the required .NET framework on demand, and integrating with the application installation. Admittedly this is probably way more complex that most applications require, but is an interesting discussion nonetheless.