Azure Pipeline构建失败

时间:2019-07-07 10:59:49

标签: .net azure azure-devops azure-pipelines

我有一个包含3个项目的解决方案。其中两个是.Net Standard项目,一个是.Net Framework项目,即单元测试。我正在尝试构建它,但出现错误。

 C:\Program 
 Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file 'D:\a\1\s\src\TestIOC\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.
C:\Program Files\dotnet\sdk\2.2.105\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file 'D:\a\1\s\src\TestMvvm\obj\project.assets.json' not found. Run a NuGet package restore to generate this file.
Process 'msbuild.exe' exited with code '1'.

这是我当前的Azure Pipelines YAML文件。

trigger:
- master

pr:
- master

variables:
  buildConfiguration: Release
  buildPlatform: Any CPU
  coreSolution: 'src\TestMvvmCore.sln'
  coreCSProj: 'src\TestMvvm\*.csproj'
  testCSProj: 'src\TestMvvm.Tests\*.csproj'
pool:
    vmImage: vs2017-win2016

steps:

- task: NuGetToolInstaller@1
  inputs:
    versionSpec: '4.9.1'

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln, src\TestMvvm.Tests\packages.config'
    feedsToUse: 'select'

- task: MSBuild@1
  displayName: Build TestMvvm Solution
  inputs:
    solution: '$(coreSolution)'
    configuration: '$(buildConfiguration)'
    restoreNugetPackages: true

如果有人可以帮助我纠正错误,我将不胜感激

2 个答案:

答案 0 :(得分:2)

由于您的项目类型和 msbuild 任务不会自动调用dotnet restore,因此需要执行另一个任务来显式调用它。您可以在执行nuget restore之前尝试执行dotnet restore任务而不是msbuild xxx.sln

此外,您还可以将/t:restore添加到MSBuild参数中以显式调用dotnet restore

msbuildArguments: ‘/t:restore’

注意:在 msbuild 任务中,restoreNugetPackages已被弃用。它将不再起作用,您必须使用任务来获得还原包。

答案 1 :(得分:1)

您必须首先还原nuget软件包,并且必须提供SLN文件,而不是packages.config。

您的NugetCommand @ 2任务应仅还原解决方案文件,而不还原packages.config文件。首先更正您的YAML。