Udostępnij za pośrednictwem


Tworzenie i uruchamianie pliku poleceń wdrażania

Autor: Jason Lee

W tym temacie opisano sposób kompilowania pliku poleceń, który umożliwi uruchomienie wdrożenia przy użyciu plików projektu Microsoft Build Engine (MSBuild) w ramach jednego kroku, powtarzalnego procesu.

Ten temat stanowi część serii samouczków opartych na wymaganiach dotyczących wdrażania przedsiębiorstwa fikcyjnej firmy o nazwie Fabrikam, Inc. W tej serii samouczków użyto przykładowego rozwiązania — rozwiązania Contact Manager — do reprezentowania aplikacji internetowej o realistycznym poziomie złożoności, w tym aplikacji ASP.NET MVC 3, usługi Windows Communication Foundation (WCF) i projektu bazy danych.

Metoda wdrażania w centrum tych samouczków opiera się na metodzie podzielonego pliku projektu opisanego w artykule Understanding the Build Process (Opis procesu kompilacji), w którym proces kompilacji jest kontrolowany przez dwa pliki projektu — jeden zawierający instrukcje kompilacji, które mają zastosowanie do każdego środowiska docelowego, oraz jeden zawierający ustawienia kompilacji i wdrażania specyficzne dla środowiska. W czasie kompilacji plik projektu specyficzny dla środowiska jest scalony z plikiem projektu niezależnego od środowiska w celu utworzenia pełnego zestawu instrukcji kompilacji.

Omówienie procesu

W tym temacie dowiesz się, jak utworzyć i uruchomić plik poleceń, który używa tych plików projektu do wykonania powtarzalnego wdrożenia w środowisku docelowym. Zasadniczo plik polecenia po prostu musi zawierać polecenie MSBuild, które:

  • Informuje program MSBuild o wykonaniu pliku Publish.proj niezależnego od środowiska.
  • Informuje plik Publish.proj , który plik zawiera ustawienia projektu specyficzne dla środowiska i gdzie go znaleźć.

Tworzenie polecenia MSBuild

Zgodnie z opisem w artykule Understanding the Build Process (Opis procesu kompilacji) plik projektu specyficznego dla środowiska — na przykład Env-Dev.proj — został zaprojektowany do zaimportowania do pliku Publish.proj w czasie kompilacji środowiska. Razem te dwa pliki zawierają pełny zestaw instrukcji, które informują program MSBuild, jak skompilować i wdrożyć rozwiązanie.

Plik Publish.proj używa elementu Import do importowania pliku projektu specyficznego dla środowiska.

<Import Project="$(TargetEnvPropsFile)"/>

W związku z tym w przypadku używania MSBuild.exe do kompilowania i wdrażania rozwiązania Contact Manager należy wykonać następujące elementy:

  • Uruchom MSBuild.exe w pliku Publish.proj .
  • Określ lokalizację pliku projektu specyficznego dla środowiska, podając parametr wiersza polecenia o nazwie TargetEnvPropsFile.

W tym celu polecenie MSBuild powinno wyglądać podobnie do następującego:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

W tym miejscu jest to prosty krok umożliwiający przejście do powtarzalnego, jednoetapowego wdrożenia. Wystarczy dodać polecenie MSBuild do pliku cmd. W rozwiązaniu Contact Manager folder Publish zawiera plik o nazwie Publish-Dev.cmd , który dokładnie to robi.

%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe Publish.proj /fl /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
echo 
pause

Uwaga

Przełącznik /fl instruuje MSBuild utworzyć plik dziennika o nazwie msbuild.log w katalogu roboczym, w którym MSBuild.exe został wywołany.

Aby wdrożyć lub ponownie wdrożyć rozwiązanie Contact Manager, wystarczy uruchomić plik Publish-Dev.cmd . Po uruchomieniu pliku program MSBuild wykona następujące działania:

  • Skompiluj wszystkie projekty w rozwiązaniu.
  • Generowanie wdrożonych pakietów internetowych dla projektów aplikacji internetowych.
  • Generowanie plików dbschema i .deploymanifest dla projektów bazy danych.
  • Wdróż pakiety internetowe na serwerze sieci Web.
  • Wdróż bazę danych na serwerze bazy danych.

Uruchamianie wdrożenia

Po utworzeniu pliku polecenia dla środowiska docelowego powinno być możliwe ukończenie całego wdrożenia, po prostu uruchamiając plik.

Aby wdrożyć rozwiązanie Contact Manager w środowisku testowym

  1. Na stacji roboczej dewelopera otwórz Eksploratora Windows, a następnie przejdź do lokalizacji pliku Publish-Dev.cmd .

  2. Kliknij dwukrotnie plik, aby go uruchomić.

  3. Jeśli zostanie wyświetlone okno dialogowe Otwieranie pliku — ostrzeżenie o zabezpieczeniach , kliknij przycisk Uruchom.

  4. Jeśli ustawienia konfiguracji i serwery testowe są poprawnie skonfigurowane, w oknie wiersza polecenia zostanie wyświetlony komunikat Kompilacja powiodła się po zakończeniu przetwarzania plików projektu przez program MSBuild.

    Jeśli ustawienia konfiguracji i serwery testowe są poprawnie skonfigurowane, w oknie wiersza polecenia zostanie wyświetlony komunikat Kompilacja powiodła się po zakończeniu przetwarzania plików projektu przez program MSBuild.

  5. Jeśli po raz pierwszy wdrożono rozwiązanie w tym środowisku, musisz dodać testowe konto maszyny serwera internetowego do db_datawriter idb_datareader ról w bazie danych ContactManager . Ta procedura jest opisana w temacie Konfigurowanie serwera bazy danych na potrzeby publikowania w usłudze Web Deploy.

    Uwaga

    Podczas tworzenia bazy danych wystarczy przypisać te uprawnienia. Domyślnie proces kompilacji nie utworzy ponownie bazy danych na każdym wdrożeniu — zamiast tego porówna istniejącą bazę danych z najnowszym schematem i wprowadzi tylko wymagane zmiany. W związku z tym należy mapować tylko te role bazy danych przy pierwszym wdrożeniu rozwiązania.

  6. Otwórz program Internet Explorer i przejdź do adresu URL aplikacji Contact Manager (na przykład http://testweb1:85/ContactManager/).

  7. Sprawdź, czy aplikacja działa zgodnie z oczekiwaniami i możesz dodać kontakty.

    Sprawdź, czy aplikacja działa zgodnie z oczekiwaniami i możesz dodać kontakty.

Podsumowanie

Utworzenie pliku polecenia zawierającego instrukcje programu MSBuild zapewnia szybki i łatwy sposób kompilowania i wdrażania rozwiązania obejmującego wiele projektów w określonym środowisku docelowym. Jeśli musisz wielokrotnie wdrażać rozwiązanie w wielu środowiskach docelowych, możesz utworzyć wiele plików poleceń. W każdym pliku polecenia polecenie MSBuild skompiluje ten sam plik projektu uniwersalnego, ale określi inny plik projektu specyficzny dla środowiska. Na przykład plik polecenia do opublikowania w środowisku dewelopera lub środowiska testowego może zawierać następujące polecenie MSBuild:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

Plik polecenia do publikowania w środowisku przejściowym może zawierać następujące polecenie MSBuild:

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Stage.proj

Uwaga

Aby uzyskać wskazówki dotyczące dostosowywania plików projektów specyficznych dla środowiska dla własnych środowisk serwera, zobacz Konfigurowanie właściwości wdrożenia dla środowiska docelowego.

Można również dostosować proces kompilacji dla każdego środowiska, przesłaniając właściwości lub ustawiając różne inne przełączniki w poleceniu MSBuild. Aby uzyskać więcej informacji, zobacz Dokumentacja wiersza polecenia programu MSBuild.