【问题标题】:MTOUCH : error MT2001: Could not link assembliesMTOUCH:错误 MT2001:无法链接程序集
【发布时间】:2020-07-17 09:32:12
【问题描述】:
MTOUCH : error MT2001: Could not link assemblies.

    Type: `Xamarin.Essentials.AuthManager`

    Assembly: `Xamarin.Essentials, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null`

  Reason: Value cannot be null.

  Parameter name: key

在 Azure DevOps 管道上构建 Xamarin.Forms 解决方案时出现上述错误。 管道在构建 iOS 项目时遇到错误。当我更新到最新版本的 Xamarin.Forms v4.5.0.530 和 Xamarin.Essentials v1.5.2 时,它开始崩溃。当我在 VS Mac 上本地运行构建时,它构建得很好。

如果有人能提供帮助,将不胜感激。

非常感谢

【问题讨论】:

  • 尝试在本地清除您的解决方案,然后再次在本地构建
  • 解决方案在本地构建良好。它仅在 DevOps 管道内失败
  • 您的主机代理使用什么操作系统?
  • 您在 devops 中是否有任何构建任务来设置 xcode 版本和 xamarin sdk 版本?我今天在缺席 6 个月后重新补水管道时发生了这种情况,结果发现它只需要将 xcode 版本从 10.1 更新到 11.3.1,并将 xamarin 版本从 5.16 更新到 6.8。
  • @Mike sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 6_6_0_166 我正在使用这个脚本,但现在我得到“在 macOS 上找不到 MSBuild 或 xbuild (Mono) 或Linux 代理。”尝试在管道中构建我的 Xamarin UI 测试项目时出错

标签: c# xamarin.forms build azure-pipelines


【解决方案1】:

在将项目更新到最新版本后,我在 azure devops 中出现了同样的错误消息。我怀疑这与较新的 10.15 macos 代理有关,但解决它只是更新所有内容以使用最新的情况。

具体来说,我在工作开始时有 2 个任务,如下所示(顺便说一句伪代码)

Select Xamarin SDK Version: sudo $(Agent.HomeDirectory)/scripts/select-xamarin-sdk.sh 5_16_0 Select Xcode version: sudo xcode-select --switch /Applications/Xcode_10.1.app/Contents/Developer

解决方案是将 Xamarin SDK 版本更新到 6.8,xcode 版本更新到 11.3.1,所以现在我有 2 个这样的任务:

Select Xamarin SDK Version: sudo $(Agent.HomeDirectory)/scripts/select-xamarin-sdk.sh 6_8_0 Select Xcode version: sudo xcode-select --switch /Applications/Xcode_11.3.1.app/Contents/Developer

我还使用

在作业配置中将代理专门设置为 10.15 版本
  • “Azure Pipelines”作为代理池
  • “macOS-10.15”作为代理规范

并在“需求”部分中,确保它对以下内容有“现有”需求

  • xcode
  • Xamarin.iOS

希望对您有所帮助。我绝不是这方面的专家,这对我有用:)

【讨论】:

  • 感谢 Mike,我已尝试将图像更新到 - macOS -10.15 并添加了选择的 XCode 和 Xamarin SDK 脚本,但仍然在 macOS 上找不到“MSBuild 或 xbuild (Mono)”或 Linux 代理。错误:(
  • 如果您为管道导出 yaml,它是否以这样的方式开始? pool: name: Azure Pipelines demands: - xcode - Xamarin.iOS
  • 池:名称:Azure Pipelines 要求:- xcode - msbuild - MSBuild - Xamarin.Android - JDK - Xamarin.iOS - 这是我构建管道的开始。但是,我认为这些要求与我遇到的错误无关。
  • fwiw,我可以在我们的设置中看到一个不同之处在于,我们有一个单独的解决方案,其中只有 iOS 项目,专门用于我们在仅 iOS 的管道中使用。 (因此只有 xcode 和 Xamarin.iOS 要求)。我不知道这是否会有所帮助,但这可能是在消除过程中值得尝试的事情。除此之外,我没有想法,希望在 azure devops 方面更聪明的人可以介入:)
猜你喜欢
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多