Pergunta

Eu tenho um projeto de instalação do Visual Studio que uso para instalar um aplicativo WinForms bastante simples.No final da instalação, tenho uma página de interface de usuário personalizada que mostra uma única caixa de seleção que pergunta ao usuário se ele deseja executar o aplicativo.Já vi outros instaladores fazerem isso com bastante frequência.Mas não consigo encontrar uma maneira de fazer com que o Projeto de Instalação execute um executável após a conclusão da instalação.Uma ideia?

OBSERVAÇÃO:Você não pode usar ações personalizadas porque elas são usadas como parte do processo de instalação. Desejo executar meu aplicativo instalado assim que o usuário pressionar o botão 'Fechar' no final da instalação.

Foi útil?

Solução

Acredito que esta seja uma das reais limitações do projeto de instalação do Visual Studio.Você precisa modificar a última página da interface de instalação, mas o VS.NET não oferece uma maneira de fazer isso.Você poderia modificar as tabelas no .MSI após sua construção, mas o VS.NET provavelmente substituiria essas alterações sempre que fosse compilado.Você pode substituir a última página usando um módulo de mesclagem incluído no projeto de instalação.De qualquer forma, você precisará se familiarizar com a forma como as caixas de diálogo da interface do usuário são criadas em um .MSI e isso não é trivial.

Você pode considerar mudar para um instalador gratuito baseado em script ou comprar um aplicativo comercial de autoria de configuração (só não compre o InstallShield pelo amor de Pete).Dê uma olhada no InstallAware (embora eu não o tenha usado).

Outras dicas

Você também pode usar ações personalizadas

Acabei de encontrar uma maneira muito fácil que não requer ferramentas externas.Você só precisa adicionar um arquivo de classe ao projeto principal e uma ação personalizada ao projeto de configuração.

http://www.codeproject.com/KB/install/Installation.aspx

Fiz isso para aplicativos internos criando um chicote de script VB que inicia o executável de configuração, aguarda o fechamento e, em seguida, inicia o segundo programa.

Você também pode fazer isso com um pouco mais de polimento usando algumas chamadas de API do Win em um executável C.

Você pode usar o MSILAUNCH (embora eu só funcione com o MSICREATE).

http://www.cornerhouse.ca/en/msi.html

Eu consegui isso invocando o método Main no assembly usando a seguinte linha:

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )

você pode fazer isso por um instalador personalizado.basta adicionar a classe do instalador e você verá muitos eventos como após a instalação, antes da instalação.basta conectar após a instalação e a partir daí executar seu exe por classe de processo.Eu sugiro que você pesquise no Google para saber mais sobre o instalador personalizado.aqui está um bom link que pode te ajudar http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

obrigado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top