Visual Studio を使用した web 配置の ASP.NET: コマンド ライン配置
このチュートリアル シリーズでは、Visual Studio 2012 または Visual Studio 2010 を使用して、ASP.NET Web アプリケーションをAzure App Service Web Appsまたはサード パーティのホスティング プロバイダーに展開 (発行) する方法について説明します。 シリーズの詳細については、シリーズ の最初のチュートリアルを参照してください。
概要
このチュートリアルでは、コマンド ラインから Visual Studio Web 発行パイプラインを呼び出す方法について説明します。 これは、通常はソース コードのバージョン管理システムを使用して、Visual Studio で手動で行うのではなく、デプロイ プロセスを自動化するシナリオに役立ちます。
デプロイに変更を加える
現在、[バージョン情報] ページにはテンプレート コードが表示されます。
これを、学生の登録の概要を表示するコードに置き換えます。
About.aspx ページを開き、 要素内のすべてのマークアップをMainContent
Content
削除し、その場所に次のマークアップを挿入します。
<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>
プロジェクトを実行し、[ バージョン情報 ] ページを選択します。
コマンド ラインを使用してテストにデプロイする
別のデータベース変更をデプロイしないため、aspnet-ContosoUniversity データベースの dbDacFx データベースのデプロイを無効にします。 [Web の発行] ウィザードを開き、3 つの発行プロファイルのそれぞれで、[設定] タブの [データベースチェックの更新] ボックスをオフにします。
Windows 8 の [スタート] ページで、 VS2012 の開発者コマンド プロンプトを検索します。
VS2012 の開発者コマンド プロンプトのアイコンを右クリックし、[管理者として実行] をクリックします。
コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換えます。
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test
MSBuild によってソリューションがビルドされ、テスト環境にデプロイされます。
ブラウザーを開き、 に http://localhost/ContosoUniversity
移動し、[ バージョン情報 ] ページをクリックして、デプロイが成功したことを確認します。
テストで学生を作成していない場合は、[ 学生の本文の統計 ] 見出しの下に空のページが表示されます。 [学生] ページに移動し、[学生の追加] をクリックして学生を追加し、[バージョン情報] ページに戻って学生の統計情報を表示します。
主要なコマンド ライン オプション
入力したコマンドは、ソリューション ファイルパスと 2 つのプロパティを MSBuild に渡しました。
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true
/p:PublishProfile=Test
ソリューションのデプロイと個々のプロジェクトのデプロイ
ソリューション ファイルを指定すると、ソリューション内のすべてのプロジェクトがビルドされます。 ソリューションに複数の Web プロジェクトがある場合、次の MSBuild 動作が適用されます。
- コマンド ラインで指定したプロパティは、すべてのプロジェクトに渡されます。 そのため、各 Web プロジェクトには、指定した名前の発行プロファイルが必要です。 を指定
/p:PublishProfile=Test
する場合、各 Web プロジェクトには Test という名前の発行プロファイルが必要です。 - 別のプロジェクトがビルドされない場合は、1 つのプロジェクトを正常に発行できます。 詳細については、「スタックオーバーフロー スレッド MSBuild が 2 つのパッケージで失敗する」を参照してください。
ソリューションではなく個々のプロジェクトを指定する場合は、Visual Studio のバージョンを指定するパラメーターを追加する必要があります。 Visual Studio 2012 を使用している場合、コマンド ラインは次の例のようになります。
msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0
Visual Studio 2010 のバージョン番号は 10.0 です。 詳細については、Sayed Hashimi のブログの Visual Studio プロジェクトの互換性と VisualStudioVersion に関するページを参照してください。
発行プロファイルの指定
発行プロファイルは、次の例に示すように、名前または .pubxml ファイルへの完全なパスで指定できます。
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml
コマンド ライン発行でサポートされている Web 発行メソッド
コマンド ラインの発行では、次の 3 つの発行方法がサポートされています。
MSDeploy
- Web 配置を使用して発行します。Package
- Web 配置パッケージを作成して発行します。 パッケージを作成する MSBuild コマンドとは別にパッケージをインストールする必要があります。FileSystem
- 指定したフォルダーにファイルをコピーして発行します。
ビルド構成とプラットフォームの指定
ビルド構成とプラットフォームは、Visual Studio またはコマンド ラインで設定する必要があります。 発行プロファイルには と LastUsedPlatform
という名前LastUsedBuildConfiguration
のプロパティが含まれますが、プロジェクトのビルド方法を決定するためにこれらのプロパティを設定することはできません。 詳細については、「MSBuild: Sayed Hashimi のブログで 構成プロパティを設定する方法 」を参照してください。
ステージングへのデプロイ
Azure にデプロイするには、コマンド ラインにパスワードを追加する必要があります。 Visual Studio の発行プロファイルにパスワードを保存した場合は、暗号化された形式で .pubxml.user ファイルに格納されていました。 コマンド ラインデプロイを実行すると、そのファイルは MSBuild からアクセスされないため、コマンド ライン パラメーターでパスワードを渡す必要があります。
ステージング Web サイト用に前にダウンロードした .publishsettings ファイルから、必要なパスワードをコピーします。 パスワードは、Web Deploy
publishProfile
要素のuserPWD
属性の値です。Windows 8 の [スタート] ページで、 VS2012 の開発者コマンド プロンプトを検索し、アイコンをクリックしてコマンド プロンプトを開きます。 (ローカル コンピューター上の IIS に展開していないため、今回は管理者として開く必要はありません)。
コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換え、パスワードをパスワードに置き換えます。
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
このコマンド ラインには、 という追加のパラメーター
/p:AllowUntrustedCertificate=true
が含まれていることに注意してください。 このチュートリアルを記述する際は、AllowUntrustedCertificate
コマンド ラインから Azure に発行するときに プロパティを設定する必要があります。 このバグの修正プログラムがリリースされた場合、そのパラメーターは必要ありません。ブラウザーを開き、ステージング サイトの URL に移動し、[ バージョン 情報] ページをクリックして、デプロイが成功したことを確認します。
前にテスト環境で確認したように、[ バージョン 情報] ページで統計情報を表示するために学生を作成する必要がある場合があります。
運用環境への配置
運用環境にデプロイするプロセスは、ステージングのプロセスと似ています。
運用 Web サイト用に前にダウンロードした .publishsettings ファイルから、必要なパスワードをコピーします。
VS2012 の開発者コマンド プロンプトを開きます。
コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換え、パスワードをパスワードに置き換えます。
msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
実際の運用サイトの場合、データベースの変更があった場合は、通常、展開前に app_offline.htm ファイルをサイトにコピーし、デプロイが成功した後に削除します。
ブラウザーを開き、ステージング サイトの URL に移動し、[ バージョン 情報] ページをクリックして、デプロイが成功したことを確認します。
まとめ
これで、コマンド ラインを使用してアプリケーションの更新プログラムをデプロイしました。
次のチュートリアルでは、Web 発行パイプラインを拡張する方法の例を示します。 この例では、プロジェクトに含まれていないファイルを配置する方法を示します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示