【问题标题】:Azure CI pipeline build failed because of Microsoft.Bcl.Build.Tasks.dll由于 Microsoft.Bcl.Build.Tasks.dll,Azure CI 管道构建失败
【发布时间】:2019-10-21 22:09:42
【问题描述】:

我的 Xamarin 源代码可以在本地机器上正确构建。但给出了 Microsoft.Bcl.Build.Tasks.dll 的错误。无法在 TFS Azure DevOps 服务器上加载文件或程序集。

我的解决方案的每个 .csproj 中已经有 Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" 仍然给出相同的构建 CI 时出错。

Azure DevOps 引发的错误:

packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets(97,5):错误 MSB4062:无法从程序集 D 加载“EnsureBindingRedirects”任务: \a\3\s\ACI_GPS\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.Tasks.dll。无法加载文件或程序集 'file:///D:\a\3\s\ACI_GPS\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.Tasks.dll' 或其中之一它的依赖关系。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。进程“msbuild.exe”以代码“1”退出。

项目在本地成功构建,但不是在 TFS DevOps 管道 (CI) 上。 我正在尝试多种解决方案,但没有任何效果。

【问题讨论】:

  • 您是否在构建中使用 NuGet 任务?您是否在构建开始时使用任务来恢复 NuGet 包?
  • @MerlinLiang-MSFT 是的。我正在使用 Nuget 任务和 nuget restore。
  • 您是否使用“Nuget Tool Installer”任务指定Nuget版本?
  • 检查包及其dll是否恢复到正确位置。您可以在 NuGet 还原任务的日志记录中找到它,但请确保 NuGet 还原任务中的 'Verbosity' 选项设置为 'Detailed' 。默认情况下,它将在与解决方案文件相同级别的包文件夹中恢复它,它是您案例的正确位置吗?
  • @miezke,它在本地 MAC 机器上构建和运行正常,这意味着我在正确的位置有 .dll 文件。将其推送到 TFS 后,它会产生构建错误。

标签: xamarin tfs azure-devops continuous-integration azure-pipelines


【解决方案1】:

通过以下步骤解决了问题:

  • 将 Microsoft.Bcl.Build 降级到以前的版本 1.0.14。
  • 恢复包并重建。

同样适用于 Azure Devops,尝试使用 1.0.14 版本的 Microsoft.Bcl.Build。

希望对你有帮助。

【讨论】:

  • 我使用了一个包 Microsoft.AspNet.WebApi.Client 包用于 PostAsJsonAsyc 方法。其中安装了 BCL 的依赖包。所以无法降级。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 2020-05-13
  • 2021-01-03
  • 2020-01-01
  • 1970-01-01
相关资源
最近更新 更多