Azure 构建管道:构建解决方案依赖项失败 - 找不到包,但独立构建 csproj 依赖项文件工作正常

肖恩·穆尼

我有一个解决方案,其中包含一堆不同的 api,它们引用了我们在实用程序文件夹中构建的不同依赖项。

在 Azure Devops 中,当我开始构建解决方案时,它抱怨找不到这些依赖项的依赖项并失败。这些依赖项指向解决方案的相同依赖项,它们位于几个文件夹之上;所以依赖 HintPath 是../../packages相对于解决方案的依赖 HintPath./packages

当我构建独立于解决方案的 csproj 文件(即不将它们构建为解决方案的依赖项)时,它们构建得很好,并且没有问题地找到包文件夹。Nuget Restore 没有报告任何问题,并且我们已将软件包签入源代码控制,因此不应遗漏任何内容。即使有,如果它们丢失,Nuget 也会恢复它们。

所以我在想:当我构建解决方案并尝试构建下面的依赖项时,它尝试访问从解决方案目录开始然后从那里向上(master/../../packages/而不是utilities/../../packages/)的包。该文件夹不存在,这会导致它失败,并且可以解释为什么依赖项的各个构建有效。

有没有人在 Azure Dev Ops 中遇到过这个问题,或者知道如何解决这个问题?

我们可以编辑提示路径以指向 ./ 已经工作的依赖项,但我们有一个本地构建,我们仍然用于生产,它不会像那样运行并且会中断。我们正在努力使这些保持同步。

如果您有任何想法,请告诉我。

谢谢

肖恩·穆尼

对我有用的解决方案正在改变 NuGet 包在解决方案中的存储方式。Visual Studio 中没有使用packages.config,而是有一个选项可以使用PackageReference,这是一种为NuGet 引用包的新方法。在将我们的大部分项目切换到使用 NuGet 的新方式后,它能够运行和构建。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章