错误msb4086:尝试对“$(msbuildversion)”进行数值比较,其计算结果为“”,而不是数字

wfsdck30  于 2021-06-23  发布在  Kudu
关注(0)|答案(1)|浏览(773)

尝试使用azure kudu部署项目(从bitbucket repo读取)我在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。

vnzz0bqm

vnzz0bqm1#

我在kudu部署和typescript版本中遇到过类似的问题。基本的问题似乎是kudu正在逐渐退出,转而支持azuredevops,因此msbuild的一些依赖项已经过时了。以下三个选项可能有助于您解决问题:
切换到AzureDevOps-您将可以访问各种构建代理,并对它们的功能有更多的控制,但一般来说,它们只是更为最新
修改你的构建脚本-这是kudu使用的脚本,你可以自定义它,然后把它放在源代码管理中,更多信息请参阅这个kudu文档。看起来您的目标是msbuild14,但我非常确定15应该可用,您可以将构建脚本指向此位置和/或进行其他调整
脱机处理一些构建,即在提交之前-这是我使用typescript的临时解决方案,我能够传输到javascript并提交js,这意味着我可以禁用kudu的typescript处理
在日志中引用的目标文件中进行挖掘,并通过该文件中的各种msbuild条件追溯问题的起因,也可能会有所帮助。您可以通过kudu中的命令提示符来查看所有这些。

相关问题