1

尝试使用 Azure Kudu 部署项目(从 BitBucket 存储库中读取)我在 Azure 门户中的部署中心收到以下错误...

此错误发生在所有最新版本的Microsoft.Net.Compilers NuGet 包中。唯一有效的版本是5 个月前的3.0.0

有谁知道这是什么原因?Azure Kudu 还没有更新吗?

Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling .NET Web Application deployment.
MSBuild auto-detection: using msbuild version '14.0.23107.0 built by: D14REL' from 'D:\Program Files (x86)\MSBuild\14.0\Bin'.
Restoring NuGet package Microsoft.Net.Compilers.3.1.1.
  GET https://api.nuget.org/v3-flatcontainer/microsoft.net.compilers/3.1.1/microsoft.net.compilers.3.1.1.nupkg
  OK https://api.nuget.org/v3-flatcontainer/microsoft.net.compilers/3.1.1/microsoft.net.compilers.3.1.1.nupkg 937ms
Installing Microsoft.Net.Compilers 3.1.1.
Adding package 'Microsoft.Net.Compilers.3.1.1' to folder 'D:\home\site\repository\packages'
Added package 'Microsoft.Net.Compilers.3.1.1' to folder 'D:\home\site\repository\packages'

NuGet Config files used:
    D:\local\UserProfile\AppData\Roaming\NuGet\NuGet.Config

Feeds used:
    D:\home\.nuget\
    https://api.nuget.org/v3/index.json

Installed:
    1 package(s) to packages.config projects
D:\home\site\repository\packages\Microsoft.Net.Compilers.3.1.1\tools\Microsoft.Managed.Core.targets(63,60): error MSB4086: A numeric comparison was attempted on "$(MSBuildVersion)" that evaluates to "" instead of a number, in condition "$(MSBuildVersion) >= 16.1.0". [D:\home\site\repository\MyCompany\MyCompany.csproj]
Failed exitCode=1, command="D:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\home\site\repository\MyCompany\MyCompany.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="D:\local\Temp\8d727f56aa60788";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false /p:SolutionDir="D:\home\site\repository\.\\"
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\84.10807.4030\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"

### 编辑 ###

我还打开了一个问题@ Kudu GitHub repo。

4

1 回答 1

2

我在 kudu 部署和打字稿版本方面遇到了类似的问题。基本问题似乎是 kudu 正在逐渐支持 Azure DevOps,因此 msbuild 的一些依赖项变得过时了。以下三个选项可能会帮助您解决问题:

  1. 切换到 Azure DevOps - 您将可以访问各种构建代理并更好地控制它们的能力,但通常它们只会更新
  2. 修改您的构建脚本 - 这是 kudu 使用的脚本,您可以对其进行自定义,然后将其放入源代码控制中,有关更多信息,请参阅此 kudu 文档。看起来你的目标是 msbuild 14,但我很确定 15 应该可用,你可以将你的构建脚本指向这个和/或进行其他调整
  3. 离线处理一些构建,即在提交之前 - 这是我使用打字稿的临时解决方案,我能够转换为 JavaScript 并提交 js,这意味着我可以禁用 kudu 的打字稿处理

它还可能有助于在日志中引用的目标文件中进行挖掘,并通过该文件中的各种 msbuild 条件追溯问题的开始位置。您可以通过 kudu 中的命令提示符进行探索来查看所有这些内容。

于 2019-08-24T21:40:24.873 回答