【问题标题】:Azure Pipeline - dotnet build fails with "error MSB3073: The command netcoreapp2.2/ThisAssembly.Project.g.cs' exited with code 2."Azure Pipeline - dotnet 构建失败并显示“错误 MSB3073:命令 netcoreapp2.2/ThisAssembly.Project.g.cs' 退出,代码 2。”
【发布时间】:2019-10-10 11:38:20
【问题描述】:

我的 netcoreapp2.2 项目在本地 VS 中成功构建,但在 Azure Pipeline 上失败。

下面的“脚本:dotnet build”任务是我在创建“新管道”时选择“ASP.NET Core”时添加的默认任务。 我尝试将其更改为“DotNetCoreCLI@2”任务,但该任务因包不兼容错误而失败。在下面添加“NuGetToolInstaller@1”任务之前,我遇到了同样的错误。

此任务的 YML 文件是;

# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

variables:
  buildConfiguration: 'Release'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '2.2.104'

- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '5.2.0'
    checkLatest: true

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: 'WebJobCore.sln'
    feedsToUse: 'select'

- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'WebJobArtifact'
    publishLocation: 'Container'

构建失败,日志如下;

Starting: dotnet build Release
==============================================================================
Task         : Command line
Description  : Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
Version      : 2.151.2
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/command-line
==============================================================================
Generating script.
Script contents:
dotnet build --configuration Release
========================== Starting Command Output ===========================

  Restoring packages for /home/vsts/work/1/s/WebJobCore/WebJobCore.csproj...
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1608: Detected package version outside of dependency constraint: Microsoft.Data.Services.Client 5.6.4 requires Microsoft.Data.OData (= 5.6.4) but version Microsoft.Data.OData 5.8.4 was resolved. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'Microsoft.Azure.ConfigurationManager 4.0.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'Microsoft.Azure.WebJobs.Extensions.GroupQueueTrigger 2.0.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'Microsoft.Data.Services.Client 5.6.4' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'Microsoft.IdentityModel.Protocol.Extensions 1.0.2.205111437' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'NLog.AzureAppendBlob 1.0.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'NLog.Extensions 1.0.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'TransientFaultHandling.Core 5.1.1209.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj : warning NU1701: Package 'windowsazure.mediaservices 4.2.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.2'. This package may not be fully compatible with your project. [/home/vsts/work/1/s/WebJobCore.sln]
  Generating MSBuild file /home/vsts/work/1/s/WebJobCore/obj/WebJobCore.csproj.nuget.g.props.
  Restore completed in 709.14 ms for /home/vsts/work/1/s/WebJobCore/WebJobCore.csproj.
  sed: can't read s/\(.*\)"/\1";/: No such file or directory
/home/vsts/.nuget/packages/msbuilder.thisassembly.project/0.3.4/build/MSBuilder.ThisAssembly.Project.targets(84,3): error MSB3073: The command "sed -i '' 's/\(.*\)"/\1";/' 'obj/Release/netcoreapp2.2/ThisAssembly.Project.g.cs'" exited with code 2. [/home/vsts/work/1/s/WebJobCore/WebJobCore.csproj]

Build FAILED.

"Bash exited with code '1'."

【问题讨论】:

  • 只是检查提供的信息是否有用。如果您需要进一步的帮助,请告诉我们。
  • 谢谢!但现在我被困在这个阶段。 stackoverflow.com/questions/58360789/… 有什么解决办法吗?
  • 那是另一个问题,社区的其他人会帮你解决,那么现在这个问题如何?它还存在吗?如果是的话,你可以把最新的信息分享给我,我会继续关注。
  • 没有出路,所以放弃了netcoreapp2.2项目,基于Azure WebJob模板创建了net461项目。所以,对我来说,这个问题现在已经结束了。

标签: .net-core azure-devops azure-pipelines azure-pipelines-build-task azure-pipelines-release-task


【解决方案1】:

Azure 管道 - dotnet 构建失败并显示“错误 MSB3073:命令 netcoreapp2.2/ThisAssembly.Project.g.cs' 退出,代码为 2。”

根据报错信息:

sed: can't read s/(.*)"/\1";/: No such file or directory

当您收到 MSBuild 错误 MSB3073 时,这意味着您的项目中自定义命令行的路径不正确。您需要检查该命令行的路径。

此外,错误显示找不到文件或目录s/\(.*\)"/\1,因此,您需要确保构建服务器中的路径正确。您可以直接在构建服务器中执行该命令行来检查它是否工作正常。

希望这会有所帮助。

【讨论】:

  • 谢谢。但是,我的项目中没有这样的自定义命令。
  • @amsDeveloper,它应该存在于您忽略的某个地方,否则不会出现此类错误消息。仔细检查您是否在项目中设置了任何 bat/bash 命令行或构建事件。
猜你喜欢
  • 2018-03-23
  • 1970-01-01
  • 2016-09-10
  • 1970-01-01
  • 2019-12-04
  • 2022-10-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
相关资源
最近更新 更多