Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above
whatever the auto detect tooling is for KUDU, it always selects 14
is
Add an app-setting for your Web App:
MSBUILD_PATH
with the value %MSBUILD_15_DIR%\msbuild.exe
This will be picked up by the default deploy script.
msbuild 15 is not used by default. You can use it, with a little modification to your Kudu script.
Here is an example using msbuild 15 for restore, build and publish*.
:: 1. Restore nuget packages
call :ExecuteCmd nuget.exe restore "%DEPLOYMENT_SOURCE%\BACON.sln" -MSBuildPath "%MSBUILD_15_DIR%"
IF !ERRORLEVEL! NEQ 0 goto error
:: 2. Build and publish
call :ExecuteCmd "%MSBUILD_15_DIR%\MSBuild.exe" "%DEPLOYMENT_SOURCE%\BACON.WEB.csproj" /p:DeployOnBuild=true /p:configuration=Release /p:publishurl="%DEPLOYMENT_TEMP%" %SCM_BUILD_ARGS%
IF !ERRORLEVEL! NEQ 0 goto error
* change BACON.sln
& BACON.WEB.csproj
to your project file names
The msbuild 15 is now available in Azure, however it's not default you need to add a custom deployment script to override Kudu's project detection logic .
As watashiSHUN described you could add something like this:
nuget restore "%DEPLOYMENT_SOURCE%\{SolutionPath}"
"%MSBUILD_PATH%" {MSBuildArguments}
And here is the template and the issue in the github.