André Alves de Lima

Talking about Software Development and more…

Criando um instalador com o Visual Studio 2015

Uns tempos atrás eu escrevi um artigo mostrando rapidamente como criar instaladores para aplicativos .NET. Nesse artigo eu mostrei três ferramentas que podemos utilizar para gerar instaladores das nossas aplicações: Installer Projects do Visual Studio, InnoSetup e InstallShield. Como esse é um dos artigos mais acessados aqui no meu site, eu resolvi me aprofundar um pouco em cada uma dessas ferramentas. Confira no vídeo abaixo a criação de um instalador no Visual Studio 2015 utilizando os Installer Projects:

Adicionando os Installer Projects no Visual Studio 2015

Como mencionei no vídeo, se você não conseguir encontrar os projetos de instalação no Visual Studio 2015, não se preocupe, isso é completamente normal. Até o Visual Studio 2012, os projetos de instalador eram adicionados automaticamente durante a configuração do Visual Studio. Porém, a partir do Visual Studio 2013 nós temos que baixar uma extensão a parte para instalá-los.

Você pode baixar os Installer Projects para Visual Studio 2013 aqui e para o Visual Studio 2015 aqui. Outra opção é abrir a tela de “Extensions and Updates” diretamente no Visual Studio (menu “Tools“), clicar em “Online” e procurar por “Installer“.

Baixe o projeto de exemplo

Para baixar o projeto de exemplo desse artigo, assine a minha newsletter. Ao fazer isso, além de ter acesso ao projeto, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário no final do artigo.

Até a próxima!

André Lima

Photo by Peter Shanks used under Creative Commons
https://pixabay.com/en/startup-start-up-notebooks-creative-593327/

Song Rocket Power Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/

Newsletter do André Lima

* indicates required



Powered by MailChimp

19 thoughts on “Criando um instalador com o Visual Studio 2015

  • […] Para mais informações sobre esse vídeo (inclusive para baixar o projeto de exemplo), clique neste link. […]

  • Sames Davis disse:

    Muito boa a aula, gostei!
    Só alguns detalhes que eu queria saber como fazer, como por exemplo, mudar o idioma da tela do instalador e colocar uma LOGO na tela de instalação e alterar o ícone do arquivo de instalação.

    Porque ele gera dois arquivos? setup e install? Não poderia ser apenas um?

    • andrealveslima disse:

      Olá Sames, muito obrigado! Fico feliz que você tenha gostado do vídeo.. :)

      Quanto às suas questões.. Para alterar o idioma, você precisa configurar a propriedade “Localization” do projeto do instalador.. Já para colocar um logotipo no instalador, você pode seguir as instruções apresentadas nesta thread do StackOverflow.. E quanto ao ícone, você pode especificar um ícone customizado que vai ser mostrado na janela de adicionar e remover programas, através de propriedade “AddRemoveProgramsIcon” do instaldor..

      Por fim: por que gera dois arquivos? Um arquivo é o instalador somente do seu aplicativo (arquivo com extensão .msi) e o outro é o instalador “geral” (arquivo setup.exe), que vai conferir se todas as dependências estão instaladas, etc.. Ao distribuir o aplicativo, você precisa dos dois arquivos e você tem que executar o arquivo setup.exe para rodar o instalador..

      Abraço!
      André Lima

  • Olá André, como eu faço para que quando eu atualizar o sistema com uma nova versão e execute o instalador desta nova versão o instalador desistale a versão já instalada automaticamente e instale a nova eu vi essa função no FileZila FTP é excelente você solta uma instalação é o próprio cliente já instala sem precisar desintalar e como a maioria não sabe então isso ajudaria. OBRIGADO abraço.

    • andrealveslima disse:

      Olá André!

      Nesse caso você precisa trabalhar com a propriedade “RemovePreviousVersions” do instalador (documentação aqui).. Você também não pode esquecer de mudar o atributo “Version” no instalador e a versão dos assemblies da sua aplicação.. Dessa forma ele gerará um novo “ProductCode”, que fará com que o instalador entenda que uma nova versão do mesmo aplicativo está sendo instalada..

      Abraço!
      André Lima

  • André disse:

    André boa tarde outra pergunta…rs quanto eu gero o instalador gera 2 arquivos de SETUP e tanto um quanto o outro executa normal, qual a razão de gerar 2 arquivos iguais? Obrigado.

    • andrealveslima disse:

      Olá André, desculpa a demora, é que o seu comentário tinha caído no spam aqui..

      Eu falei sobre o motivo da geração de dois arquivos pelo setup em um comentário logo aqui em cima (resposta do comentário do Sames Davis).. Dá uma olhada lá e veja se você ficou claro pra você..

      Abraço!
      André Lima

  • Eduardo fontes disse:

    Ótima Literatura, adquirir o Ebook – Aprendendo Report Viewer – do design à implantação, Recomendo a todos que assim como eu necessite de literatura passo a passo, que seja ELUCITATIVA! Ándré está de parabéns pela obra, espero que lance mais!

    • andrealveslima disse:

      Olá Eduardo!

      Muito obrigado! Fico feliz que você tenha aproveitado o conteúdo do e-book! Qualquer dúvida, é só entrar em contato.. :)

      Abraço!
      André Lima

  • Frederico A. Simões disse:

    Olá André bom dia!

    Como sempre trazendo material de qualidade para nosso aprendizado. Excelente artigo! Agora eu gostaria de tirar uma pequena dúvida. Eu tenho uma fonte .TTF que não encontramos em determinado sistema operacional. Qual seria a ideia para fazer a instalação dessa fonte? Eu vi que em sua explicação eu poderia utiliza o Custom Actions para rodar um programa e fazer alguma rotina referente ao meu software. A ideia seria essa mesmo ou teria outra maneira para fazer a instalação dessa fonte?

    Obrigado mais uma vez por seus excelentes artigos publicados. Estou sempre acompanhando seu trabalho. Muito bom! Sempre tenho recomendado a alguns amigos

  • Frederico A. Simões disse:

    André acabei esquecendo de perguntar uma outra coisa. Na minha aplicação eu estou utilizando o .NET Framework 4.6.1 e o SQL Local DB. Gostaria de saber se na instalação não for detectado os recursos mencionados acima, se eu poderia fazer a instalação off-line e sozinha sem a “intervenção” do usuário. É possível fazer isso em segundo plano? Obrigado e desculpas por não ter colocado a informação completa.

    • andrealveslima disse:

      Olá novamente, Frederico! Sem problema, vamos lá..

      Na parte de requisitos do projeto de instalação você pode selecionar esses pré-requisitos para serem instalados automaticamente.. Porém, acredito que a instalação não será “off-line”, o usuário terá que aceitar os termos, etc, etc.. Só fazendo um teste em uma máquina limpa mesmo para ver o comportamento exato..

      Se realmente for necessária uma instalação sem intervenção, eu tentaria fazer manualmente com custom actions rodando um .bat que chame os instaladores necessários passando o parâmetro para instalação “quiet”..

      Abraço!
      André Lima

  • Frederico Simões disse:

    Olá André estou eu aqui novamente para tirar mais uma dúvida.

    Eu utilizo o IntelliLock para fazer a segurança e licenciamento dos programas que venho desenvolvendo. Só que tem um porém, quando eu utilizo esse software, ele faz uma compilação e “protege” contra uma possível pirataria.

    Onde está o meu problema. Quando vou fazer um instalador com o Visual Studio, quando pego o projeto de saída, ele nunca pega o arquivo executável que foi compilado pelo programa que utilizo.

    Poderia safar mais essa onça por favor? Já procurei na internet e ainda não achei nada. Poderia me ajudar por favor?

    Obrigado desde já.

    • Frederico Simões disse:

      André,

      Consegui resolver o meu problema. Depois de analisar bem cheguei a seguinte solução:

      1 – Copiei o arquivo que o IntelliLock compila e coloquei na pasta do meu projeto onde está localizado o Primary output from Gerador XML (Active)

      2 – Na janela Configuration Manager desmarquei a opção Build do meu projeto para que ele não sobreposse o meu arquivo compilado pelo programa IntelliLock.

      3 – Compilei somente o meu projeto Setup e funcionou normalmente.

      Peço desculpas por ter colocado a informação acima. Como resolvi o problema achei apropriado colocar também a resolução do problema. Peço desculpas por que eu acho que não fui muito claro.

      Mesmo assim um grande abraço e obrigado por suas colaborações.

      • andrealveslima disse:

        Olá Frederico!

        Que bom que você conseguiu resolver o problema.. Eu não tinha ideia do que poderia ser feito nessa situação, mas, felizmente você conseguiu solucionar.. :)

        E não tem problema nenhum que você colocou as informações acima.. Muito pelo contrário, eu agradeço por você ter voltado aqui e compartilhado com a gente a solução que você encontrou.. Dessa forma, se mais alguém tiver essa mesma dificuldade no futuro, as suas instruções vão ajudar sem dúvida alguma..

        Um forte abraço!
        André Lima

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *