Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms VSTS、Xamarin表单、网络标准、Android:project.assets.json在我调用restore时未找到_Xamarin.forms_Azure Devops_.net Standard - Fatal编程技术网

Xamarin.forms VSTS、Xamarin表单、网络标准、Android:project.assets.json在我调用restore时未找到

Xamarin.forms VSTS、Xamarin表单、网络标准、Android:project.assets.json在我调用restore时未找到,xamarin.forms,azure-devops,.net-standard,Xamarin.forms,Azure Devops,.net Standard,我正在vsts上构建一个Xamarin表单app(通过yml)。 iOS和Android的步骤几乎相同。 整个解决方案在我的机器上构建良好,iOS阶段在VST上构建良好 但是,在Android阶段中,我在解决方案的msbuild上遇到了一个错误。 错误是: [错误]C:\Program Files\dotnet\sdk\2.1.104\sdk\Microsoft.NET.sdk\build\Microsoft.PackageDependencyResolution.targets(327,5):

我正在vsts上构建一个
Xamarin表单
app(通过yml)。
iOS和Android的步骤几乎相同。
整个解决方案在我的机器上构建良好,iOS阶段在VST上构建良好

但是,在Android阶段中,我在解决方案的msbuild上遇到了一个错误。 错误是:

[错误]C:\Program Files\dotnet\sdk\2.1.104\sdk\Microsoft.NET.sdk\build\Microsoft.PackageDependencyResolution.targets(327,5): 错误:资产文件'D:\a\1\s\MyApp.Controls\obj\project.Assets.json' 没有找到。运行NuGet包还原以生成此文件

我知道我首先必须运行
dotnetrestore
来生成
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标准库),这就是发生错误的项目。

在yml文件中定义的NuGet restore任务不正确,您应该使用该任务
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