尝试使用 Azure Kudu 部署项目(从 BitBucket 存储库读取(我在 Azure 门户的部署中心收到以下错误...
此错误发生在所有最新版本的 Microsoft.Net.Compilers NuGet 包中。唯一有效的版本是 3.0.0 个月前的 5
。有谁知道这是什么原因?Azure Kudu 尚未更新吗?
Command: "D:homesitedeploymentstoolsdeploy.cmd"
Handling .NET Web Application deployment.
MSBuild auto-detection: using msbuild version '14.0.23107.0 built by: D14REL' from 'D:Program Files (x86)MSBuild14.0Bin'.
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:homesiterepositorypackages'
Added package 'Microsoft.Net.Compilers.3.1.1' to folder 'D:homesiterepositorypackages'
NuGet Config files used:
D:localUserProfileAppDataRoamingNuGetNuGet.Config
Feeds used:
D:home.nuget
https://api.nuget.org/v3/index.json
Installed:
1 package(s) to packages.config projects
D:homesiterepositorypackagesMicrosoft.Net.Compilers.3.1.1toolsMicrosoft.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:homesiterepositoryMyCompanyMyCompany.csproj]
Failed exitCode=1, command="D:Program Files (x86)MSBuild14.0BinMSBuild.exe" "D:homesiterepositoryMyCompanyMyCompany.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="D:localTemp8d727f56aa60788";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false /p:SolutionDir="D:homesiterepository.\"
An error has occurred during web site deployment.
rnD:Program Files (x86)SiteExtensionsKudu84.10807.4030binScriptsstarter.cmd "D:homesitedeploymentstoolsdeploy.cmd"
### 编辑
###我还打开了一个问题@Kudu GitHub repo。
我在 kudu 部署和打字稿版本中遇到了类似的问题。基本问题似乎是kudu正在走向Azure DevOps,因此msbuild的一些依赖项已经过时了。以下是三个选项,可以帮助您解决问题:
- 切换到 Azure DevOps - 你将有权访问各种生成代理,并更好地控制它们的功能,但通常它们只会更新
- 修改您的构建脚本 - 这是 kudu 使用的脚本,您可以自定义它,然后将其放入源代码管理中,有关详细信息,请参阅此 kudu 文档。看起来您的目标是 msbuild 14,但我很确定 15 应该可用,您可以将构建脚本指向此和/或进行其他调整
- 离线处理您的一些构建,即在提交之前 - 这是我使用打字稿的临时解决方案,我能够转译为 JavaScript 并提交 js,这意味着我可以禁用 kudu 的打字稿处理
在日志中引用的目标文件中进行挖掘并通过该文件中的各种 msbuild 条件追溯问题开始的位置也可能会有所帮助。您可以通过 kudu 中的命令提示符进行探索来查看所有这些。