如何让KUDU使用MSBuild 15

5
Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above

无论是针对KUDU的自动检测工具,它总是选择14。有没有一种方法可以强制它选择15?
3个回答

13
为您的 Web 应用程序添加一个应用设置:
使用值为 %MSBUILD_15_DIR%\msbuild.exeMSBUILD_PATH
这将被默认的部署脚本所选取。

尝试了几次这个解决方案,但都没有成功。我发现必须在完成/保存部署中心选项之前添加此应用程序设置密钥。在已连接存储库之后添加密钥将不起作用。 - Brenden Kehren
2
它会被Kudu构建脚本捕获,因此您需要重新部署(或在首次部署之前设置它)。 - Robert Massa
这个解决方案对我非常有效。我不得不添加应用程序设置,然后重新部署失败的部署。 - EduLopez

3

默认情况下不使用msbuild 15。您可以通过对Kudu脚本进行一些修改来使用它。

以下是一个使用msbuild 15进行还原、构建和发布的示例*。

:: 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

* BACON.slnBACON.WEB.csproj更改为您的项目文件名


2

现在Azure中可用的是msbuild 15,但它不是默认的,您需要添加自定义部署脚本以覆盖Kudu的项目检测逻辑。

正如watashiSHUN所描述的那样,您可以添加类似于以下内容:

最初的回答:

nuget restore "%DEPLOYMENT_SOURCE%\{SolutionPath}"
"%MSBUILD_PATH%" {MSBuildArguments}

这是模板问题在github上。最初的回答。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接