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.
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.