今まで普通に動いていたCustom Deployment Script(Azure Web Apps)によるデプロイ処理が、突然エラーで終了するようになってしまいから何とか改善まで至った時のメモです。
そのため情報が不十分である可能性がありますので、ご注意ください。
どんなエラーが出たのか
The syntax of the command is incorrect.
D:\Program Files (x86)\SiteExtensions\Kudu\73.10510.3399\bin\Scripts\starter.cmd deploy.cmd
発生の経緯まで
コードの変更も特になかったため、残念ながら分からず終いでした。
調べた内容
ツールをVisual Studio2015から2017に変えたからか?とも思いましたが、変えたのは2018年4月ころで、そのうえ事象が発生するまでの間に何度となくデプロイは行っていたので対象外としました。
その他文字コード、改行コードも調べてみましたがデプロイできていたころと変わらずエラー、、、
ちなみにそれぞれ以下の設定になってました。
- 文字コード : UTF-8
- 改行コード : CRLF
どうやって直したのか
上記のエラーをさらに追ってみたところ、MSBuild14が動作してないらしいことまで追えたため、
Add "Build Tools for Visual Studio 2017" to Azure App Service #2350
に記載のある修正内容に則って(コメントアウトが変更前のコード)
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Deployment
:: ----------
echo Handling .NET Web Application deployment.
:: 1. Restore NuGet packages
IF /I "XXXXX.sln" NEQ "" (
:: call :ExecuteCmd nuget restore "%DEPLOYMENT_SOURCE%\XXXXX.sln"
call :ExecuteCmd nuget restore "%DEPLOYMENT_SOURCE%\XXXXX.sln" -MSBuildPath "%MSBUILD_15_DIR%"
IF !ERRORLEVEL! NEQ 0 goto error
)
加えて
:: 2. Build to the temporary path
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
:: call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\AAAA.BBBB\AAAA.BBBB.csproj" ^
call :ExecuteCmd "%MSBUILD_15_DIR%\MSBuild.exe" "%DEPLOYMENT_SOURCE%\AAAA.BBBB\AAAA.BBBB.csproj" ^
/nologo ^
/verbosity:m ^
/t:Build ^
/t:pipelinePreDeployCopyAllFilesToOneFolder ^
/p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=%DEPLOY_MODE%;UseSharedCompilation=false ^
/p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
) ELSE (
:: call :ExecuteCmd "%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\AAAA.BBBB\AAAA.BBBB.csproj" ^
call :ExecuteCmd "%MSBUILD_15_DIR%\MSBuild.exe" "%DEPLOYMENT_SOURCE%\AAAA.BBBB\AAAA.BBBB.csproj" ^
/nologo ^
/verbosity:m ^
/t:Build ^
/p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=%DEPLOY_MODE%;UseSharedCompilation=false ^
/p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS%
)
というように修正したところ、無事起動するようになりました。