我调用恢复时找不到VSTS,Xamarin Forms,Net Standard,Android:project.assets.json

时间:2018-05-03 16:33:21

标签: xamarin.forms azure-devops .net-standard

我正在vsts上构建一个Xamarin Forms应用程序(通过yml)。 iOS和Android的步骤几乎完全相同。 整个解决方案在我的机器上构建良好,iOS阶段在VSTS上构建良好。

但是我在Android阶段的解决方案的msbuild上出现错误。 错误是:

  

[错误] 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 :(得分:0)

您的yml文件中定义的NuGet还原任务不正确,您应该使用 NuGetCommand@2 任务进行NuGet还原。

以下是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