Eu sei que esta é uma pergunta muito básica. Se alguém pudesse me divertir e me dizer como eles lidariam com isso, eu ficaria muito agradecido.
Decidi postar isso porque estou prestes a instalar o SynchToy para solucionar o problema abaixo e me sinto um pouco profissional usando um "Brinquedo", mas não consigo pensar em uma maneira melhor.
Muitas vezes, quando estou nessa situação, sinto falta de uma maneira dolorosamente óbvia de fazer as coisas - isso vem de ser o único desenvolvedor da empresa.
- Aplicativo da Web ASP.NET desenvolvido no meu computador no trabalho
- A solução possui 2 projetos:
- Site (arquivos)
- WebsiteLib (C # / dll)
- Usando um repositório Git
- Implantado em um servidor Web GoGrid 2008R2
Desdobramento, desenvolvimento:
- Faça alterações no código.
- Pressione para Git.
- Área de trabalho remota para servidor.
- Puxe do Git.
- Sobrescreva os arquivos ao vivo arrastando / soltando com o Windows Explorer.
Na etapa 5, excluo todos os arquivos da raiz do site. Isso não pode ser uma boa coisa a fazer. É por isso que estou prestes a instalar o SynchToy ...
UPDATE: Obrigado por todas as respostas úteis. Não consigo escolher qual deles marcará a resposta - entre o uso de uma implantação na Web - parece que tenho várias sugestões úteis:
- Projeto da Web = site inteiro empacotado em uma única DLL - o lado negativo para mim não é possível enviar atualizações simples - sendo um desenvolvedor solitário em uma empresa de 50 anos, isso continua sendo algo mais simples às vezes.
- Puxando direto do SCM para a raiz do site - originalmente não fiz isso por medo de que meu diretório oculto do SCM acabasse sendo exposto, mas as respostas aqui me ajudaram a superar isso (embora eu ainda não goste de ter um mais algo para se preocupar em esquecer para garantir que isso ainda seja verdade ao longo do tempo)
- Usando um web farm e implantando sistematicamente em nós - esta é a solução ideal para zero tempo de inatividade, o que é realmente algo que me interessa, já que o site é essencialmente uma fonte de receita em tempo real para minha empresa - talvez seja difícil convencê-los a dobrar o custo dos servidores.
-> finalmente, o reforço do princípio básico de que é necessário implantar um único clique no site OU MAIS ALGO ERRADO é provavelmente a coisa mais útil que obtive das respostas.
ATUALIZAÇÃO 2: Pensei em voltar a isso e atualizar com a solução real que já existe há muitos meses e está funcionando perfeitamente (para minha solução de servidor Web único).
O processo que eu uso é:
- Faça alterações no código
- Push to Git
- Área de trabalho remota para servidor
- Pull from Git
Execute o seguinte script em lote:
CD C: \ Usuários \ Administrador
% systemroot% \ system32 \ inetsrv \ appcmd.exe interrompe o site "/site.name:Default Web Site"
Documentos de robocopy \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionsconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe site inicial "/site.name:Default Web Site"
Como você pode ver, isso derruba o site, usa robocopy para copiar de maneira inteligente os arquivos que foram alterados e, em seguida, recupera o site. Geralmente, é executado em menos de 2 segundos. Como o tráfego de pico neste site é de cerca de 2 solicitações por segundo, é aceitável a falta de 4 solicitações por atualização do site.
Sine Fiquei mais proficiente com o Git. Descobri que os quatro primeiros passos acima, como sendo um "processo manual", também são aceitáveis, embora eu tenha certeza de que poderia rolar tudo em um único clique, se quisesse.
A documentação para AppCmd.exe está aqui . A documentação do Robocopy está aqui .