Сбой сборки Azure Pipeline - PullRequest
0 голосов
/ 07 июля 2019

У меня есть решение, в котором есть 3 проекта. Два из них - это проект .Net Standard, а один - проект .Net Framework, который называется Unit Test. Я пытаюсь построить его, но получаю ошибку.

 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'.

Это мой текущий файл YAML конвейеров Azure.

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 ]

2 голосов
/ 07 июля 2019

Поскольку тип вашего проекта и задача msbuild не будут вызывать dotnet restore автоматически, для его явного вызова необходимо выполнить другую задачу.Вы можете попробовать выполнить задачу dotnet restore вместо nuget restore перед выполнением msbuild xxx.sln.

Кроме того, вы также можете добавить /t:restore в аргумент MSBuild для явного вызова dotnet restore:

msbuildArguments: ‘/t:restore’

Примечание. В msbuild задача, restoreNugetPackages устарела.Он больше не будет работать, и вы должны использовать задачу для восстановления пакета.

1 голос
/ 07 июля 2019

Сначала вам нужно восстановить пакет nuget, и вы должны предоставить файл SLN, а не package.config.

Ваша задача NugetCommand @ 2 должна восстанавливать только файл решения, но не восстанавливать packages.config файл.Сначала исправьте YAML.

...