AzureDevops Pipeline 生成 APK:错误 XALNK7000:Mono.Linker.MarkException

问题描述 投票:0回答:1

当我的用于生成 apk 的管道脚本运行时遇到此错误(它在 Visual Studio 2022 中构建并运行良好):

##[错误]C:\Program Files (x86)\Microsoft Visual Studio�9\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Legacy.targets(660,5): 错误XALNK7000: Mono.Linker.MarkException: 错误处理方法: '系统.线程.任务.任务

1<Sharpnado.HorizontalListView.Services.PageResult
1> Sharpnado.HorizontalListView.Paging.Paginator
1::LoadPage(System.Int32,System.Boolean)' in assembly: 'Sharpnado.HorizontalListView.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve System.Threading.Tasks.Task
1 Sharpnado.Tasks.TaskMonitor
1<Sharpnado.HorizontalListView.Services.PageResult
1>::get_Task()

我的 yml 脚本:

# https://docs.microsoft.com/azure/devops/pipelines/languages/xamarin
pool:
  vmImage: 'windows-2019' # For Mac, use 'macOS-10.13'

variables:
  - group: 'AndroidAppVariables'
  - name: 'buildConfiguration'
    value: 'Release'
  - name: 'outputDirectory'
    value: '$(build.binariesDirectory)/$(buildConfiguration)'
  - name: 'NugetVersion'
    value: 5.8.0

steps:
- task: NuGetToolInstaller@0
  displayName: 'Use NuGet $(NugetVersion)'
  inputs:
    versionSpec: $(NugetVersion)

- task: NuGetCommand@2
  inputs:
    command: 'restore'
    restoreSolution: 'src\AndroidApp.sln'
    feedsToUse: 'select'
    vstsFeed: '/a3sb3q3s-ab12-2020-0202-0202020202'

- task: XamarinAndroid@1
  inputs:
    projectFile: 'src\AndroidApp.Android\AndroidApp.csproj'
    outputDirectory: '$(outputDirectory)'
    configuration: '$(buildConfiguration)'
    jdkVersionOption: 1.11
    createAppPackage: true
    msbuildVersionOption: latest

到目前为止我尝试过的:

  1. 请注意,Sharpnado.HorizontalListView 根本不是我的依赖项的一部分(也许是过去)
  2. 从 Android.csproj 文件中删除了
    <GenerateSerializationAssembles>Auto</GenerateSerializationAssemblies>
  3. 将项目文件路径从\更改为/
  4. 重新安装一些nuget软件包
  5. 链接属性设置为 None
azure azure-devops xamarin.android azure-pipelines azure-pipelines-build-task
1个回答
0
投票

在阅读了 StackOverflow 中发生在 Visual Studio 中的一些类似错误(在发布配置模式下构建时)之后,我也在 VS2022 中遇到了该问题。就像其他人在这个问题中所做的那样,即使该应用程序不再使用,我也必须安装 Sharpnado.HorizontalListView 1.8.2,因为我们希望将更改保持在最低限度(因为我们也在迁移到 .Net MAUI,而这样做只需确保当前的 Xamarin 项目仍然得到维护): Mono.Linker.MarkException:错误处理方法:'System.Void AndroidX.RecyclerView.Widget.RecyclerView/LayoutManager

然后它也适用于管道,无需更改脚本中的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.