はじめに
Azure App ServiceをVisualStudioを起動せずに、コマンドプロンプトからデプロイしたい。
準備
下記のサイトを参考にAzure App Serviceを作成します。
Visual Studio を使用した Azure App Service への ASP.NET Web アプリのデプロイ
デプロイに必要な情報を手に入れる
VisualStudioから一度デプロイを実行すると、デプロイに必要な情報が入ったファイルが作成されます。
C:\MyExample\MyExample\Properties\PublishProfiles\[AppServiceのリソース名].pubxml
Azureポータルからデプロイのためのプロファイルを手に入れる
次に、Azureポータルを開き、準備で作成したApp Serviceのプロファイルをダウンロードします。
リソースグループ > [準備で作成したリソースグループ] > [AppServiceのリソース名] > 概要
ダウンロードしてきた**[AppServiceのリソース名].PublishSettingsの中にある<userPWD>**タグの内容をコピーしておきます。
コマンドプロンプトからデプロイする
いよいよ、コマンドプロンプトからデプロイを実行します。デプロイにはMSBuildを使用します。
VisualStudio2015ではMSBuildは下記にあると思います。
C:\Program Files (x86)\MSBuild\14.0\Bin
VisualStudioのバージョンによってMSBuildのパスが異なるため注意が必要です。1
コマンドプロンプトを開き、下記のコマンドを実行することでデプロイできます。
MSBuild C:\MyExample\MyExample.sln /p:DeployOnBuild=true /p:PublishProfile="[AppServiceのリソース名]" /p:Password=[発行プロファイルから取得したパスワード]
準備で公開したサイトへ再度アクセスし、変更を確認します。
今回は、タイトルを"ASP.NET"から"Deploy Succeed"に変更しました。
その他
pubxmlファイルについて
初回の作成をVisualStudioに任せてしまったので、pubxmlのファイル名が[AppServiceのリソース名]と同じです。しかし、内容さえ間違っていなければファイル名はなんでも良いようです。
また、一度pubxmlファイルを作成してしまえば他のWebアプリの発行する際にも使いまわせます。開発用とリリース用などで使い分けると便利だと思います。
パスワードについて
今回パスワードはコマンドを実行する際に入力していますが、先ほどのpubxmlに含めることができます。
含める場合はpubxmlファイルの<PropertyGroup>タグ内に**<Password>タグを追加し[発行プロファイルから取得したパスワード]**を入力します。
デプロイするユーザについて
デプロイに使用するユーザとパスワードはpubxmlファイルを作成した際に自動で作られているようですが、Azureポータルから追加し使用することもできます。
追加した場合は、pubxmlの<UserName>タグと<Password>タグに情報を記述するか、2つのタグを削除しコマンド上で下記を追加するかです。
/p:UserName=[追加したユーザ名] /p:Password=[追加したパスワード]
おわりに
調べ方が悪く、なかなか方法がわかりませんでした。
自分の備忘録的にまとめましたが、同様のことをやろうとしている方の参考なれば幸いです。
参考URL
下記のURLがとても参考になりました。ありがとうございます。
ASP.NET Web Deployment using Visual Studio: Command Line Deployment
Azure App Service へのアプリのデプロイ