Wiem, że to bardzo podstawowe pytanie. Gdyby ktoś mnie żartował i powiedział, jak sobie z tym poradzi, byłbym wdzięczny.
Postanowiłem to opublikować, ponieważ mam zamiar zainstalować SynchToy, aby rozwiązać problem poniżej i czuję się trochę nieprofesjonalny przy użyciu „zabawki”, ale nie mogę wymyślić lepszego sposobu.
Wiele razy znajduję się w tej sytuacji i brakuje mi bolesnego oczywistego sposobu robienia rzeczy - pochodzi to od bycia jedynym programistą w firmie.
- Aplikacja internetowa ASP.NET opracowana na moim komputerze w pracy
- Rozwiązanie ma 2 projekty:
- Witryna (pliki)
- WebsiteLib (C # / dll)
- Korzystanie z repozytorium Git
- Wdrożony na serwerze sieciowym GoGrid 2008R2
Rozlokowanie:
- Wprowadź zmiany w kodzie.
- Push to Git.
- Zdalny pulpit do serwera.
- Wyciągnij z Git.
- Zastąp pliki na żywo, przeciągając / upuszczając za pomocą Eksploratora Windows.
W kroku 5 usuwam wszystkie pliki z katalogu głównego witryny. To nie może być dobra rzecz. Dlatego właśnie zamierzam zainstalować SynchToy ...
AKTUALIZACJA: DZIĘKI za wszystkie przydatne odpowiedzi. Nie mogę wybrać, który z nich ma oznaczać odpowiedź - między użyciem wdrożenia internetowego - wygląda na to, że mam kilka przydatnych sugestii:
- Web Project = cała witryna spakowana w jedną bibliotekę DLL - wadą dla mnie nie mogę wypychać prostych aktualizacji - będąc samotnym programistą w 50-osobowej firmie, czasami jest to coś prostszego.
- Przechodząc prosto z SCM do katalogu głównego witryny - pierwotnie nie zrobiłem tego ze strachu, że mój ukryty katalog SCM może zostać ujawniony, ale odpowiedzi tutaj pomogły mi to przełamać (chociaż nadal nie lubię mieć takiego więcej rzeczy do zmartwienia o zapomnieniu, aby upewnić się, że nadal jest to prawda)
- Korzystanie z farmy internetowej i systematyczne wdrażanie w węzłach - jest to idealne rozwiązanie na zero przestojów, co tak naprawdę jest dla mnie ważne, ponieważ witryna jest zasadniczo źródłem przychodów w czasie rzeczywistym dla mojej firmy - może być mi trudno przekonać ich do podwaja koszt serwerów.
-> wreszcie, ponowne wprowadzenie w życie podstawowej zasady, że konieczne jest wdrożenie za pomocą jednego kliknięcia dla witryny LUB INNE TAM COŚ ŹLE jest prawdopodobnie najbardziej przydatną rzeczą, jaką uzyskałem z odpowiedzi.
AKTUALIZACJA 2: Pomyślałem, że wrócę do tego i aktualizuję rzeczywiste rozwiązanie, które istnieje od wielu miesięcy i działa idealnie (w przypadku mojego pojedynczego serwera WWW).
Proces, którego używam to:
- Wprowadź zmiany w kodzie
- Push to Git
- Zdalny pulpit do serwera
- Wyciągnij z Git
Uruchom następujący skrypt wsadowy:
cd C: \ Users \ Administrator
% systemroot% \ system32 \ inetsrv \ appcmd.exe stop site "/site.name:Default Web Site"
robocopy Documents \ code \ da \ 1 \ work \ Tree \ LendingTreeWebSite1 c: \ inetpub \ wwwroot / E / XF connectionconfig Web.config
% systemroot% \ system32 \ inetsrv \ appcmd.exe strona początkowa „/site.name:Default Web Site”
Jak widać, sprowadza to stronę na dół, używa robocopy do inteligentnego kopiowania zmienionych plików, a następnie przywraca kopię zapasową strony. Zwykle działa w mniej niż 2 sekundy. Ponieważ szczytowy ruch w tej witrynie wynosi około 2 żądań na sekundę, dopuszczalne jest pominięcie 4 żądań na aktualizację witryny.
Sine Zrozumiałem bardziej z Gitem. Przekonałem się, że pierwsze cztery kroki powyżej, które są „procesem ręcznym”, są również do przyjęcia, chociaż jestem pewien, że mógłbym rzucić całość na jedno kliknięcie, jeślibym chciał.
Dokumentacja AppCmd.exe znajduje się tutaj . Dokumentacja do Robocopy jest tutaj .