Estou tentando construir um entendimento geral do que é comum nessa situação, para que eu possa decidir se faz sentido prosseguir.
- Os instaladores são bem-vindos em um ambiente corporativo típico com o seguinte?
- Processo de controle de alterações
- Ambientes de desenvolvimento / controle de qualidade / produção
- Designar equipes de implantação para várias áreas (firewall, banco de dados, janelas etc.).
- Existe um "teste decisivo" que possa ser aplicado a um aplicativo para ver se ele é um bom candidato para a criação de um instalador? *
- Os instaladores são simples o suficiente para que cada aplicativo tenha um?
- Os instaladores são a ferramenta certa?
- É razoável esperar que os desenvolvedores aprendam algo como o WiX para dar suporte aos instaladores?
- A manutenção em geral é uma preocupação, ou seja, criar um instalador é uma habilidade de nicho?
*
Por exemplo, eu tenho um conjunto de aplicativos winform que estão em um diretório compartilhado em um servidor de produção. Grupos específicos podem executar os aplicativos nesse diretório, mas apenas os administradores do sistema podem modificar os executáveis. O processo de implantação atual envolve a instalação de um administrador para copiar / colar os executáveis e as bibliotecas no diretório compartilhado.
Como os aplicativos não estão instalados na máquina de usuários individuais, faz sentido criar um instalador para implantar novas versões desses aplicativos no diretório compartilhado?
Editar--
Eu senti que as respostas aqui deram alguns conselhos sólidos, então eu queria compartilhar o que eu criei para o meu projeto atual, onde eu precisava criar um grande número de aplicativos e implantá-los em pastas individuais.
Encontrei um pacote NuGet chamado _PublishedApplications que imita o comportamento de _PublishedWebsites para projetos da web. A idéia é instalar o pacote NuGet em seus projetos e adicionar um destino que copiará os artefatos de construção em um diretório _PublishedApplications no caminho de saída. Esse comportamento é ativado executando o MSBuild na linha de comando e especificando uma outdir
propriedade:
msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln
Isso fornecerá uma estrutura de diretórios semelhante à seguinte:
- C: \ caminho \ para \ fora
- _PublishedApplications \
- Projeto 1\
dlls, exes, etc.
- Projeto2 \
...
- Projeto 1\
- _PublishedApplications \
A partir daí, criar um zip que pode ser extraído nos vários ambientes é bastante simples.
.msi
instalador? Aqueles, pelo menos, podem ser totalmente automatizados com o mínimo de dor. (enquanto ainda está sendo compreensível para o usuário ocasional que precisa fazer suas próprias atualizações)