LoginSignup
1
0

More than 1 year has passed since last update.

Azureデプロイなど .Net Core プロジェクトをコマンドラインから操作

Last updated at Posted at 2021-06-30

はじめに

JenksinでAuzreのデプロイ周りを自動化する際に使用した、
.Net系のコマンド集です。

環境

コマンドを叩くために必要なcliツール
VisualStudioが入っていれば、すでに入っているはず。
なければ、別途インストールして、PATHを通します。

dotnet 5.0.102
msbuild 16.8.3.61104

azure-cliをインストールしてください。

az --version

コマンドが認識されなければインストール
https://docs.microsoft.com/en-us/cli/azure/install-azure-cli

各コマンドが入ったか確認

dotnet --version
5.0.102
msbuild -version
16.8.3.61104
az --version
2.24.0

Azure Web Appsにデプロイ

dotnet publish "MyProject.csproj" /p:Configuration=Release /p:PublishProfileFullPath="C:\MyProject - Web Deploy.pubxml" /p:Username="ユーザー名" /p:Password="パスワード"
  1. 第一引数は発行したいプロジェクトのcsprojファイルのPath
  2. Configurationは構成

  3. PublishProfileFullPathはVisualtStudioからプロジェクトの「発行」をする際にできるファイル。まずはVisualStudioで目的のAzureWebAppsに向いているファイルを作っておきます。
    プロジェクトフォルダ/Properties/PublishProfiles下にあります。

  4. ユーザー名とパスワードはAzureポータルから取得
    発行プロファイルの中に以下のプロパティがあります
    「userName」「userPWD」
    無題クリップ_063021_071302_PM.jpg

Azure Functionsにデプロイ

msbuild "MyProject.csproj" /p:DeployOnBuild=True /p:PublishProfileFullPath="C:\MyProject - Zip 配置.pubxml" /p:Username="ユーザー名" /p:Password="パスワード"

引数の意味はWeb Appsと一緒
dotnet publishだとうまく行かなかったのでmsbuildを使っている

EF Coreのマイグレーション

dotnet new tool-manifest
dotnet tool install dotnet-ef --version 3.1.11

dotnet ef database update --context MyContext --project MyProject --startup-project MyProject --configuration Release

MSIXの発行

3ステップ必要です。

nugetの復元

msbuild -property:RuntimeIdentifiers=\"win-x86\" /t:restore /p:platform=\"x86\" /p:configuration="Release" ${workspace}\\MyProject.sln

バージョンの書き換え

 powershell """
                   \$xmlFileName = \"${env:workspace}\\MyProject.Package\\Package.appxmanifest\"
                   [xml]\$xmlDoc = Get-Content \$xmlFileName
                   \$xmlDoc.Package.Identity.Version = 1.0.0.0
                   \$xmlDoc.Save(\$xmlFileName)
                """

パッケージ化

msbuild -property:RuntimeIdentifiers=\"win-x86\" MyProject.Package\\MyProject.Package.wapproj /nologo /nr:false  /p:platform=\"x86\" /p:configuration=\"Release\" /p:PackageCertificateKeyFile=${workspace}\\MyProject.Package\\証明書.pfx /p:PackageCertificatePassword=\"証明書パスワード\" /t:clean;restore;rebuild

Azrue Blob Storageにファイルのアップロード

az storage blob upload --account-name Blobのアカウント名 --account-key BlobのKey --container-name コンテナ名 --file ファイル名 --name アップロード後のファイル名

Web Appsのアプリケーション設定の上書き

ログイン

 az login --username ユーザー名 --password パスワード
az webapp config appsettings set --resource-group リソースグループ名 --name リソース名 --slot スロット名 --settings 上書き対象のKey=新しい値 --subscription サブスクリプションID         

--slotと--subscriptionは省略可能

デプロイスロットのスワップ

az functionapp deployment slot swap --name リソース名 --resource-group リソースグループ名 --slot スロット名

Azure Web Apps FTPデプロイ

windowsにコマンドがなかったのでcygwin64を使ってzipとcurlをいれました

デプロイ対象フォルダをzip圧縮

C:\cygwin64\bin\zip.exe -r wwwroot.zip .
curl -X POST -u ユーザー名:パスワード --data-binary @"wwwroot.zip" エンドポイント/api/zipdeploy

ユーザー名、パスワード、デプロイエンドポイントは画像の位置からダウンロード

無題クリップ_063021_075843_PM.jpg

ダウンロードしたprofile.publishsettingsの中を確認

ユーザー名 = userName
パスワード = userPWD
エンドポイント=publishUrl (例:mywebapp.scm.azurewebsites.net)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0