Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you get KUDU to use MSBuild 15

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 there a way for force it to select 15?

like image 825
Chris Hayes Avatar asked Apr 10 '19 21:04

Chris Hayes


3 Answers

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.

like image 69
Robert Massa Avatar answered Nov 10 '22 11:11

Robert Massa


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.

like image 39
George Chen Avatar answered Nov 10 '22 10:11

George Chen


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

like image 2
Colin Bacon Avatar answered Nov 10 '22 10:11

Colin Bacon