在Azure Devops中的linux映像中构建.NET核心项目时出现MissingMethodException

在Azure Devops中的linux映像中构建.NET核心项目时出现MissingMethodException,.net,.net-core,azure-devops,mono,docker-image,.net,.net Core,Azure Devops,Mono,Docker Image,我们有一个使用linux映像的.net核心项目管道。管道工作正常,直到我们在使用蛋糕任务构建应用程序时出现此错误: Microsoft (R) Build Engine version 16.0.0.0 for Mono Copyright (C) Microsoft Corporation. All rights reserved. /usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.S

我们有一个使用linux映像的.net核心项目管道。管道工作正常,直到我们在使用蛋糕任务构建应用程序时出现此错误:

Microsoft (R) Build Engine version 16.0.0.0 for Mono
Copyright (C) Microsoft Corporation. All rights reserved.

    /usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateDepsFile" task failed unexpectedly. [/home/vsts/work/1/s/src/bll/TestProject/TestProject.csproj]
    /usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.MissingMethodException: Method not found: System.Collections.Generic.IList`1<NuGet.Packaging.Core.PackageDependency> NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies() [/home/vsts/work/1/s/src/bll/TestProject/TestProject.csproj]
    /usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(129,5): error MSB4018:   at Microsoft.NET.Build.Tasks.DependencyContextBuilder+<>c__DisplayClass36_0.<GetLibraries>b__0 (NuGet.ProjectModel.LockFileTargetLibrary export) [0x00000] in <aafa1364e74c4a5ea60cdcaa95f71707>:0  [/home/vsts/work/1/s/src/bll/TestProject/TestProject.csproj]
Microsoft(R)为Mono构建引擎版本16.0.0.0
版权所有(C)微软公司。版权所有。
/usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.sdk/targets/Microsoft.NET.sdk.targets(129,5):错误MSB4018:“GeneratedEPFile”任务意外失败。[/home/vsts/work/1/s/src/bll/TestProject/TestProject.csproj]
/usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.sdk/targets/Microsoft.NET.sdk.targets(129,5):错误MSB4018:System.MissingMethodException:找不到方法:System.Collections.Generic.IList`1 NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies()[/home/vsts/work/1/s/src/bll/TestProject/TestProject.csproj]
/usr/share/dotnet/sdk/2.2.105/Sdks/Microsoft.NET.sdk/targets/Microsoft.NET.sdk.targets(129,5):错误MSB4018:at Microsoft.NET.Build.Tasks.DependencyContextBuilder+c_显示类36_0.b_0(NuGet.ProjectModel.LockFileTargetLibrary导出)[0x00000 in:0[/home/vsts/work 1/s/src/bll/TestProject/TestProject.csproj]
原因何在? 我们需要更新映像中的.NET SDK吗

在Azure Devops中的linux映像中构建.NET核心项目时出现MissingMethodException

根据错误消息,msbuild和dotnet core之间的nuget版本似乎不匹配

此问题已在Github上报告:

要解决此问题,您可以尝试将dotnet core安装更新到最新的稳定版本,如
2.2.300

希望这有帮助

在Azure Devops中的linux映像中构建.NET核心项目时出现MissingMethodException

根据错误消息,msbuild和dotnet core之间的nuget版本似乎不匹配

此问题已在Github上报告:

要解决此问题,您可以尝试将dotnet core安装更新到最新的稳定版本,如
2.2.300


希望这有帮助。

您在管道定义中使用了什么?您不应该从Mono调用任何东西,因此当您在上面显示MSBuild“for Mono”时,我只能说您使用了错误的工具。您在管道定义中使用了什么?您不应该从Mono调用任何东西,因此当您在上面显示MSBuild“for Mono”时,我只能说您使用了错误的工具。您是对的!因此,我们通过在构建脚本之前添加一个作业来修复它,以使用sdk 2.2.x。您是对的!因此,我们通过在构建脚本之前添加一个作业来修复它,以使用sdk 2.2.x。