次の方法で共有


Visual Studio を使用した web 配置の ASP.NET: コマンド ライン配置

作成者: Tom Dykstra

スタート プロジェクトをダウンロードする

このチュートリアル シリーズでは、Visual Studio 2012 または Visual Studio 2010 を使用して、ASP.NET Web アプリケーションをAzure App Service Web Appsまたはサード パーティのホスティング プロバイダーに展開 (発行) する方法について説明します。 シリーズの詳細については、シリーズ の最初のチュートリアルを参照してください。

概要

このチュートリアルでは、コマンド ラインから Visual Studio Web 発行パイプラインを呼び出す方法について説明します。 これは、通常はソース コードのバージョン管理システムを使用して、Visual Studio で手動で行うのではなく、デプロイ プロセスを自動化するシナリオに役立ちます。

デプロイに変更を加える

現在、[バージョン情報] ページにはテンプレート コードが表示されます。

テンプレート コードを含むページについて

これを、学生の登録の概要を表示するコードに置き換えます。

About.aspx ページを開き、 要素内のすべてのマークアップをMainContentContent削除し、その場所に次のマークアップを挿入します。

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

プロジェクトを実行し、[ バージョン情報 ] ページを選択します。

About ページ

コマンド ラインを使用してテストにデプロイする

別のデータベース変更をデプロイしないため、aspnet-ContosoUniversity データベースの dbDacFx データベースのデプロイを無効にします。 [Web の発行] ウィザードを開き、3 つの発行プロファイルのそれぞれで、[設定] タブの [データベースチェックの更新] ボックスをオフにします。

Windows 8 の [スタート] ページで、 VS2012 の開発者コマンド プロンプトを検索します。

VS2012 の開発者コマンド プロンプトのアイコンを右クリックし、[管理者として実行] をクリックします。

コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換えます。

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test

MSBuild によってソリューションがビルドされ、テスト環境にデプロイされます。

コマンド ライン出力

ブラウザーを開き、 に http://localhost/ContosoUniversity移動し、[ バージョン情報 ] ページをクリックして、デプロイが成功したことを確認します。

テストで学生を作成していない場合は、[ 学生の本文の統計 ] 見出しの下に空のページが表示されます。 [学生] ページに移動し、[学生の追加] をクリックして学生を追加し、[バージョン情報] ページに戻って学生の統計情報を表示します。

[バージョン情報] ページの [Student Body Statistics]\(学生の本文の統計情報\) を示すスクリーンショット。

主要なコマンド ライン オプション

入力したコマンドは、ソリューション ファイルパスと 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 からアクセスされないため、コマンド ライン パラメーターでパスワードを渡す必要があります。

  1. ステージング Web サイト用に前にダウンロードした .publishsettings ファイルから、必要なパスワードをコピーします。 パスワードは、Web Deploy publishProfile 要素の userPWD 属性の値です。

    Web デプロイ パスワード

  2. Windows 8 の [スタート] ページで、 VS2012 の開発者コマンド プロンプトを検索し、アイコンをクリックしてコマンド プロンプトを開きます。 (ローカル コンピューター上の IIS に展開していないため、今回は管理者として開く必要はありません)。

  3. コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換え、パスワードをパスワードに置き換えます。

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    このコマンド ラインには、 という追加のパラメーター /p:AllowUntrustedCertificate=trueが含まれていることに注意してください。 このチュートリアルを記述する際は、 AllowUntrustedCertificate コマンド ラインから Azure に発行するときに プロパティを設定する必要があります。 このバグの修正プログラムがリリースされた場合、そのパラメーターは必要ありません。

  4. ブラウザーを開き、ステージング サイトの URL に移動し、[ バージョン 情報] ページをクリックして、デプロイが成功したことを確認します。

    前にテスト環境で確認したように、[ バージョン 情報] ページで統計情報を表示するために学生を作成する必要がある場合があります。

運用環境への配置

運用環境にデプロイするプロセスは、ステージングのプロセスと似ています。

  1. 運用 Web サイト用に前にダウンロードした .publishsettings ファイルから、必要なパスワードをコピーします。

  2. VS2012 の開発者コマンド プロンプトを開きます。

  3. コマンド プロンプトで次のコマンドを入力し、ソリューション ファイルへのパスをソリューション ファイルへのパスに置き換え、パスワードをパスワードに置き換えます。

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    実際の運用サイトの場合、データベースの変更があった場合は、通常、展開前に app_offline.htm ファイルをサイトにコピーし、デプロイが成功した後に削除します。

  4. ブラウザーを開き、ステージング サイトの URL に移動し、[ バージョン 情報] ページをクリックして、デプロイが成功したことを確認します。

まとめ

これで、コマンド ラインを使用してアプリケーションの更新プログラムをデプロイしました。

学生の本文の統計情報を表示する [バージョン情報] ページを示すスクリーンショット。

次のチュートリアルでは、Web 発行パイプラインを拡張する方法の例を示します。 この例では、プロジェクトに含まれていないファイルを配置する方法を示します。