【发布时间】: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