ASP.NET wdrażanie w Internecie przy użyciu programu Visual Studio: wdrażanie wiersza polecenia
Autor: Tom Dykstra
W tej serii samouczków pokazano, jak wdrożyć (opublikować) aplikację internetową ASP.NET w celu aplikacja systemu Azure Service Web Apps lub dostawcy hostingu innej firmy przy użyciu programu Visual Studio 2012 lub Visual Studio 2010. Aby uzyskać informacje o serii, zobacz pierwszy samouczek z serii.
Omówienie
W tym samouczku pokazano, jak wywołać potok publikowania internetowego programu Visual Studio z poziomu wiersza polecenia. Jest to przydatne w scenariuszach, w których chcesz zautomatyzować proces wdrażania zamiast wykonywać go ręcznie w programie Visual Studio, zazwyczaj przy użyciu systemu kontroli wersji kodu źródłowego.
Wprowadzanie zmian w celu wdrożenia
Obecnie na stronie Informacje jest wyświetlany kod szablonu.
Zastąpisz to kodem, który wyświetla podsumowanie rejestracji uczniów.
Otwórz stronę About.aspx, usuń wszystkie znaczniki wewnątrz MainContent
Content
elementu i wstaw następujący znacznik w jego miejscu:
<h2>Student Body Statistics</h2>
<asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
</asp:ObjectDataSource>
<asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
DataSourceID="StudentStatisticsObjectDataSource">
<Columns>
<asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
ReadOnly="True" SortExpression="EnrollmentDate" />
<asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
SortExpression="StudentCount" />
</Columns>
</asp:GridView>
Uruchom projekt i wybierz stronę Informacje .
Wdrażanie do testowania przy użyciu wiersza polecenia
Nie wdrożysz innej zmiany bazy danych, dlatego wyłącz wdrożenie bazy danych dbDacFx dla bazy danych aspnet-ContosoUniversity. Otwórz Kreatora publikowania w sieci Web, a w każdym z trzech profilów publikowania wyczyść pole wyboru Aktualizuj bazę danych na karcie Ustawienia.
Na stronie Start systemu Windows 8 wyszukaj ciąg Wiersz polecenia dla deweloperów dla programu VS2012.
Kliknij prawym przyciskiem myszy ikonę wiersza polecenia dla deweloperów dla programu VS2012 i kliknij polecenie Uruchom jako administrator.
Wprowadź następujące polecenie w wierszu polecenia, zastępując ścieżkę do pliku rozwiązania ścieżką do pliku rozwiązania:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
Program MSBuild kompiluje rozwiązanie i wdraża je w środowisku testowym.
Otwórz przeglądarkę i przejdź do http://localhost/ContosoUniversity
strony , a następnie kliknij stronę Informacje , aby sprawdzić, czy wdrożenie zakończyło się pomyślnie.
Jeśli nie utworzono żadnych uczniów w teście, zobaczysz pustą stronę w nagłówku Statystyka treści uczniów . Przejdź do strony Uczniowie , kliknij pozycję Dodaj ucznia i dodaj uczniów, a następnie wróć do strony Informacje , aby wyświetlić statystyki uczniów.
Kluczowe opcje wiersza polecenia
Wprowadzone polecenie przekazało ścieżkę pliku rozwiązania i dwie właściwości do programu MSBuild:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
Wdrażanie rozwiązania w porównaniu z wdrażaniem poszczególnych projektów
Określenie pliku rozwiązania powoduje skompilowanie wszystkich projektów w rozwiązaniu. Jeśli w rozwiązaniu znajduje się wiele projektów internetowych, ma zastosowanie następujące zachowanie programu MSBuild:
- Właściwości określone w wierszu polecenia są przekazywane do każdego projektu. W związku z tym każdy projekt internetowy musi mieć profil publikowania o określonej nazwie. Jeśli określisz
/p:PublishProfile=Test
wartość , każdy projekt internetowy musi mieć profil publikowania o nazwie Test. - Możesz pomyślnie opublikować jeden projekt, gdy inny nawet nie zostanie skompilowanych. Aby uzyskać więcej informacji, zobacz wątek stackoverflow MSBuild kończy się niepowodzeniem z dwoma pakietami.
Jeśli określisz pojedynczy projekt zamiast rozwiązania, musisz dodać parametr określający wersję programu Visual Studio. Jeśli używasz programu Visual Studio 2012, wiersz polecenia będzie podobny do następującego przykładu:
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
Numer wersji programu Visual Studio 2010 to 10.0. Aby uzyskać więcej informacji, zobacz Artykuł zgodność projektu programu Visual Studio i VisualStudioVersion na blogu Sayed Hashimi.
Określanie profilu publikowania
Profil publikowania można określić według nazwy lub pełnej ścieżki do pliku pubxml , jak pokazano w poniższym przykładzie:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Metody publikowania w sieci Web obsługiwane na potrzeby publikowania w wierszu polecenia
W przypadku publikowania w wierszu polecenia obsługiwane są trzy metody publikowania:
MSDeploy
— Publikowanie przy użyciu narzędzia Web Deploy.Package
— Opublikuj, tworząc pakiet Web Deploy. Należy zainstalować pakiet oddzielnie od polecenia MSBuild, które go tworzy.FileSystem
— Publikuj, kopiując pliki do określonego folderu.
Określanie konfiguracji kompilacji i platformy
Konfiguracja kompilacji i platforma muszą być ustawione w programie Visual Studio lub w wierszu polecenia. Profile publikowania zawierają właściwości o nazwach LastUsedBuildConfiguration
i LastUsedPlatform
, ale nie można ustawić tych właściwości w celu określenia sposobu kompilowania projektu. Aby uzyskać więcej informacji, zobacz MSBuild: jak ustawić właściwość konfiguracji na blogu Sayed Hashimi.
Wdrażanie w środowisku przejściowym
Aby wdrożyć na platformie Azure, należy dodać hasło do wiersza polecenia. Jeśli hasło zostało zapisane w profilu publikowania w programie Visual Studio, zostało ono zapisane w postaci zaszyfrowanej w pliku .pubxml.user . Ten plik nie jest dostępny w programie MSBuild podczas wdrażania wiersza polecenia, dlatego musisz przekazać hasło w parametrze wiersza polecenia.
Skopiuj hasło potrzebne z pliku publishsettings pobranego wcześniej dla przejściowej witryny internetowej. Hasło jest wartością atrybutu
userPWD
elementu Web DeploypublishProfile
.Na stronie Start systemu Windows 8 wyszukaj ciąg Wiersz polecenia dla deweloperów dla programu VS2012 i kliknij ikonę, aby otworzyć wiersz polecenia. (Nie musisz otwierać go jako administrator tym razem, ponieważ nie wdrażasz w usługach IIS na komputerze lokalnym).
Wprowadź następujące polecenie w wierszu polecenia, zastępując ścieżkę do pliku rozwiązania ścieżką do pliku rozwiązania i hasłem hasłem:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Zwróć uwagę, że ten wiersz polecenia zawiera dodatkowy parametr:
/p:AllowUntrustedCertificate=true
. Podczas pisania tego samouczkaAllowUntrustedCertificate
należy ustawić właściwość podczas publikowania na platformie Azure z poziomu wiersza polecenia. Po wydaniu poprawki dla tej usterki nie będzie potrzebny ten parametr.Otwórz przeglądarkę i przejdź do adresu URL witryny przejściowej, a następnie kliknij stronę Informacje , aby sprawdzić, czy wdrożenie zakończyło się pomyślnie.
Jak pokazano wcześniej w środowisku testowym, może być konieczne utworzenie niektórych uczniów w celu wyświetlenia statystyk na stronie Informacje .
Wdróż w środowisku produkcyjnym
Proces wdrażania w środowisku produkcyjnym jest podobny do procesu przejściowego.
Skopiuj hasło potrzebne z pliku publishsettings pobranego wcześniej dla produkcyjnej witryny internetowej.
Otwórz wiersz polecenia dla dewelopera dla programu VS2012.
Wprowadź następujące polecenie w wierszu polecenia, zastępując ścieżkę do pliku rozwiązania ścieżką do pliku rozwiązania i hasłem hasłem:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
W przypadku rzeczywistej lokacji produkcyjnej, jeśli nastąpiła również zmiana bazy danych, zazwyczaj należy skopiować plik app_offline.htm do lokacji przed wdrożeniem i usunąć go po pomyślnym wdrożeniu.
Otwórz przeglądarkę i przejdź do adresu URL witryny przejściowej, a następnie kliknij stronę Informacje , aby sprawdzić, czy wdrożenie zakończyło się pomyślnie.
Podsumowanie
Teraz wdrożono aktualizację aplikacji przy użyciu wiersza polecenia.
W następnym samouczku zobaczysz przykład sposobu rozszerzania potoku publikowania internetowego. W przykładzie pokazano, jak wdrożyć pliki, które nie są uwzględnione w projekcie.