ASP.NET nasazení webu pomocí sady Visual Studio: Nasazení příkazového řádku
Tom Dykstra
V této sérii kurzů se dozvíte, jak nasadit (publikovat) webovou aplikaci ASP.NET do Aplikace Azure Service Web Apps nebo poskytovatele hostingu třetí strany pomocí sady Visual Studio 2012 nebo Visual Studio 2010. Informace o této sérii najdete v prvním kurzu série.
Přehled
V tomto kurzu se dozvíte, jak vyvolat kanál publikování webu sady Visual Studio z příkazového řádku. To je užitečné ve scénářích, ve kterých chcete automatizovat proces nasazení místo ručního nasazení v sadě Visual Studio, obvykle pomocí systému správy verzí zdrojového kódu.
Provedení změny nasazení
V současné době se na stránce O aplikaci zobrazuje kód šablony.
Nahradíte ho kódem, který zobrazuje souhrn registrace studentů.
Otevřete About.aspx stránku, odstraňte všechny značky uvnitř MainContent
Content
prvku a vložte na jeho místo následující značky:
<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>
Spusťte projekt a vyberte stránku O aplikaci .
Nasazení do testování pomocí příkazového řádku
Nebudete nasazovat jinou změnu databáze, takže zakažte nasazení databáze dbDacFx pro databázi aspnet-ContosoUniversity. Otevřete Průvodce publikováním webu a v každém ze tří profilů publikování zrušte zaškrtnutí políčka Aktualizovat databázi na kartě Nastavení.
Na úvodní stránce Windows 8 vyhledejte příkazový řádek pro vývojáře pro VS2012.
Klikněte pravým tlačítkem myši na ikonu vývojářského příkazového řádku pro VS2012 a klikněte na Spustit jako správce.
Na příkazovém řádku zadejte následující příkaz a nahraďte cestu k souboru řešení cestou k souboru řešení:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
Nástroj MSBuild sestaví řešení a nasadí ho do testovacího prostředí.
Otevřete prohlížeč a přejděte na http://localhost/ContosoUniversity
stránku O produktu a ověřte, že nasazení proběhlo úspěšně.
Pokud jste v testu nevytvořili žádné studenty, zobrazí se prázdná stránka pod nadpisem Statistika těla studenta . Přejděte na stránku Studenti , klikněte na Přidat studenta a přidejte některé studenty a pak se vraťte na stránku O aplikaci, abyste viděli statistiky studentů.
Klíčové možnosti příkazového řádku
Zadaný příkaz předal cestu k souboru řešení a dvě vlastnosti nástroji MSBuild:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
Nasazení řešení a nasazení jednotlivých projektů
Určení souboru řešení způsobí, že se sestaví všechny projekty v řešení. Pokud máte v řešení více webových projektů, platí následující chování nástroje MSBuild:
- Vlastnosti, které zadáte na příkazovém řádku, se předají do každého projektu. Každý webový projekt proto musí mít profil publikování s názvem, který zadáte. Pokud zadáte
/p:PublishProfile=Test
, každý webový projekt musí mít profil publikování s názvem Test. - Jeden projekt můžete úspěšně publikovat, i když jiný projekt ani nevytvoře. Další informace naleznete v tématu stackoverflow thread MSBuild selže se dvěma balíčky.
Pokud místo řešení zadáte jeden projekt, musíte přidat parametr, který určuje verzi sady Visual Studio. Pokud používáte Visual Studio 2012, bude příkazový řádek podobný následujícímu příkladu:
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
Číslo verze pro Visual Studio 2010 je 10.0. Další informace naleznete v tématu Kompatibilita projektů sady Visual Studio a VisualStudioVersion na blogu Sayed Hashimi.
Určení profilu publikování
Profil publikování můžete zadat podle názvu nebo úplnou cestou k souboru .pubxml , jak je znázorněno v následujícím příkladu:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
Metody publikování na webu podporované pro publikování na příkazovém řádku
Pro publikování na příkazovém řádku se podporují tři metody publikování:
MSDeploy
– Publikování pomocí nasazení webu.Package
– Publikování vytvořením balíčku nasazení webu. Balíček musíte nainstalovat odděleně od příkazu MSBuild, který ho vytvoří.FileSystem
- Publikování kopírováním souborů do zadané složky.
Určení konfigurace sestavení a platformy
Konfigurace sestavení a platforma musí být nastavené v sadě Visual Studio nebo na příkazovém řádku. Profily publikování zahrnují vlastnosti, které jsou pojmenované LastUsedBuildConfiguration
, LastUsedPlatform
ale nemůžete nastavit tyto vlastnosti, aby bylo možné určit, jak je projekt sestaven. Další informace naleznete v tématu MSBuild: jak nastavit vlastnost konfigurace na Sayed Hashimi blog.
Nasazení do přípravného prostředí
Pokud chcete nasadit do Azure, musíte do příkazového řádku přidat heslo. Pokud jste heslo uložili do profilu publikování v sadě Visual Studio, uložili jste ho v šifrované podobě do souboru .pubxml.user . Tento soubor není při nasazení příkazového řádku přístupný nástrojem MSBuild, takže je nutné předat heslo v parametru příkazového řádku.
Zkopírujte heslo, které potřebujete, ze souboru .publishsettings , který jste si stáhli dříve pro přípravný web. Heslo je hodnota atributu
userPWD
pro element Web DeploypublishProfile
.Na úvodní stránce Windows 8 vyhledejte příkazový řádek pro vývojáře pro VS2012 a kliknutím na ikonu otevřete příkazový řádek. (Tentokrát ho nemusíte otevírat jako správce, protože se nenasazujete do služby IIS na místním počítači.)
Na příkazovém řádku zadejte následující příkaz a nahraďte cestu k souboru řešení cestou k souboru řešení a heslem heslem:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
Všimněte si, že tento příkazový řádek obsahuje další parametr:
/p:AllowUntrustedCertificate=true
. Při psaníAllowUntrustedCertificate
tohoto kurzu je potřeba nastavit vlastnost při publikování do Azure z příkazového řádku. Po vydání opravy této chyby nebudete tento parametr potřebovat.Otevřete prohlížeč a přejděte na adresu URL přípravného webu a kliknutím na stránku O aplikaci ověřte, že nasazení proběhlo úspěšně.
Jak jste viděli dříve pro testovací prostředí, možná budete muset vytvořit některé studenty, abyste viděli statistiky na stránce O aplikaci.
Nasadit do produkce
Proces nasazení do produkčního prostředí se podobá procesu přípravy.
Zkopírujte heslo, které potřebujete, ze souboru .publishsettings , který jste si stáhli dříve pro produkční web.
Otevřete příkazový řádek pro vývojáře pro VS2012.
Na příkazovém řádku zadejte následující příkaz a nahraďte cestu k souboru řešení cestou k souboru řešení a heslem heslem:
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
V případě skutečné produkční lokality, pokud došlo také ke změně databáze, obvykle byste před nasazením zkopírovali soubor app_offline.htm do lokality a po úspěšném nasazení ho odstranili.
Otevřete prohlížeč a přejděte na adresu URL přípravného webu a kliknutím na stránku O aplikaci ověřte, že nasazení proběhlo úspěšně.
Shrnutí
Teď jste nasadili aktualizaci aplikace pomocí příkazového řádku.
V dalším kurzu se dozvíte, jak rozšířit kanál publikování webu. V příkladu se dozvíte, jak nasadit soubory, které nejsou součástí projektu.