【问题标题】:Azure DevOps build of Xamarin.iOS project fails - MTOUCH : error MT2002: Failed to resolve "System.Drawing.Color" referenceXamarin.iOS 项目的 Azure DevOps 构建失败 - MTOUCH:错误 MT2002:无法解析“System.Drawing.Color”参考
【发布时间】:2020-01-31 23:07:14
【问题描述】:

我在 Azure DevOps 中遇到了一个 Xamarin.iOS 应用程序的构建问题,我无法解决。我想知道是否有人有任何建议。

构建应用程序的 iOS 版本在 VS for Mac 中本地工作,但由于此错误在 Azure 中失败:

MTOUCH : error MT2002: Failed to resolve "System.Drawing.Color" reference from "System.Drawing.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" [/Users/runner/runners/2.164.6/work/1/s/iOS/CatRentalStore.iOS.csproj]

我在 Android 版本中遇到了类似的问题。我通过从 macOS-10.14 托管构建代理切换到 windows-2019 代理解决了这个问题,但这不是 iOS 应用程序的选项。

我已将可能使用 System.Drawing.Color 的软件包更新到最新的稳定版本 - Acr.UserDialogs、BTProgressHUD、Splat 和 Xamarin.Essentials。

我搜索了解决方案源,没有找到对 System.Drawing.Color 类的任何直接引用。

我还尝试使用 sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 6_4_0 指定要在构建中使用的 Xamarin/Mono 版本以匹配我的本地版本。这导致发生不同的错误:

error MSB4018: The "GenerateDepsFile" task failed unexpectedly.
error MSB4018: System.MissingMethodException: Method not found: System.Collections.Generic.IList`1<NuGet.Packaging.Core.PackageDependency> NuGet.ProjectModel.LockFileTargetLibrary.get_Dependencies()

对此问题的参考:

https://github.com/mono/mono/issues/13483

https://github.com/xamarin/xamarin-macios/pull/6011

https://github.com/aritchie/userdialogs/issues/654

https://github.com/reactiveui/splat/issues/204

【问题讨论】:

  • 我无法重现相同的问题,根据this:.NET Core 2.2.105 是 VM 映像的默认设置,但 Mono 6.0 或更高版本需要 .NET Core 2.2.300+。如果您使用 Mono 6.0 或更高版本,则必须使用 .NET Core Tool Installer 任务覆盖 .NET Core 版本。如果使用 6.4.0,则至少需要安装 2.2.300+ .net core。愿它有所帮助。
  • @ToBeOrNotToBe - 指定 .NET Core 版本解决了该问题。感谢您分享这些信息!我已经阅读了您链接到的页面,但不知何故错过了 .NET Core 信息。
  • 很高兴知道它会有所帮助。如果它解决了您的问题,您可以考虑接受它作为答案。只是一个提醒:)

标签: azure xamarin xamarin.ios azure-devops


【解决方案1】:

根据this document

NET Core 2.2.105 是 VM 映像的默认设置,但 Mono 6.0 或更高版本需要 .NET Core 2.2.300+。如果您使用 Mono 6.0 或更高版本,则必须使用 .NET Core Tool Installer task 覆盖 .NET Core 版本。如果使用 6.4.0,则至少需要安装 2.2.300+ .net core。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。在 NuGet 包升级期间,Visual Studio 有时无法更新引用:

    这些步骤帮助我解决了我的问题(iOS 项目):

    • 检查每个引用,看看它是否与相应 NuGet 包的版本匹配
      • 检查引用程序集的路径/版本:
      • 确保它与您安装的软件包版本匹配:
    • 如果版本不匹配:降级相应的NuGet包,然后再次升级相同的NuGet包,检查版本是否匹配

    我一次执行一个 NuGet 包。确保所有版本都匹配后构建成功。

    在我的开发机器上,旧版本仍然存在于包文件夹中。因此,构建始终在我的机器上运行,但在构建服务器上却不行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多