VSTS, Xamarin Forms, Net Standard, Android: project.assets.json не найден, пока я вызывал функцию восстановления - PullRequest
0 голосов
/ 03 мая 2018

Я создаю приложение Xamarin Forms на VSTS (через yml). Шаги практически идентичны для iOS и Android. Все решение отлично работает на моей машине, а этап iOS - на VSTS.

Однако я получаю сообщение об ошибке в сборке решения на этапе Android. Ошибка:

[ошибка] C: \ Program Files \ dotnet \ sdk \ 2.1.104 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.PackageDependencyResolution.targets (327,5): Ошибка: файл ресурсов 'D: \ a \ 1 \ s \ MyApp.Controls \ obj \ project.assets.json' не найдено. Запустите восстановление пакета NuGet для создания этого файла.

Я понимаю, что сначала мне нужно запустить dot net restore, чтобы сгенерировать файл project.assets.json, и я это делаю. Вот мои соответствующие задачи yml:

- task: NuGetToolInstaller@0
  displayName: 'Dot Net Restore'
  condition: succeeded()
  inputs:
      command: restore
      projects: |
       MyApp.*/*.csproj
       Platforms/MyApp.Android/*.csproj
       Platforms/MyApp.Controls.Android/*.csproj
- task: XamarinAndroid@1
  displayName: 'Building Android'
  inputs:
      solutionFile: '**/*.sln'
      configuration: 'Release'
      buildToolOption: msbuild

Обратите внимание, что MyApp.Controls.Android имеет ссылку на MyApp.Controls (это стандартная библиотека .Net), и это тот проект, в котором возникает ошибка.

1 Ответ

0 голосов
/ 04 мая 2018

Задача восстановления NuGet, определенная в вашем файле yml, неверна, для восстановления NuGet следует использовать задачу NuGetCommand@2.

Ниже приведен пример файла сборки YAML:

steps:
- task: NuGetToolInstaller@0
  inputs:
    versionSpec: 4.4.1
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'
- task: VSBuild@1
  displayName: 'Building Android'
  inputs:
    solution: '**/*.sln'
    vsVersion: 15.0
    configuration: '$(BuildConfiguration)'
    logProjectEvents: false
...