如何在Azure DevOps的CI管道中构建供解决方案使用的外部类库?

时间:2019-08-30 10:02:27

标签: azure azure-devops

我已向我的团队负责人请求,我们开始将CI / CD管道集成到大多数(如果不是全部)项目中。我们的最新项目在很大程度上依赖于解决方案中引用的我们自己的外部类库;它在“依赖项”下作为项目参考。

当我使用Visual Studio 2019在计算机中构建项目时,项目运行良好,并且在我们需要集成外部库之前,它将使用Azure DevOps管道构建并发布良好的项目。

但是,当添加一个外部类库时,当我尝试通过Azure DevOps运行生成时,出现以下错误:

  

未找到项目文件.... csproj。

我完全理解为什么找不到它-因为我需要引入外部类库并首先构建它!除了“ use nuget”以外,似乎没有很多在线资料(不是我仍然可以找到!)来描述解决方案。不幸的是,我的团队负责人要求这不是我们要走的路-这导致了很长的几天!

考虑到这一点,我在Azure DevOps中找不到另一种方法来做到这一点。我已经研究过某种PowerShell命令,但到目前为止仍无济于事。

在使用DevOps中的外部类库之前,是否有人遇到过这个问题,并且可以向我提供最佳方法的建议?

1 个答案:

答案 0 :(得分:1)

通常来说,在99.99%的情况下直接引用该项目并不是一个好主意。在部署期间,您最终可能会遇到无法维护的CI / CD逻辑和/或dll版本不匹配的情况。实际上,我是该项目的一名架构师,在该项目中,我试图通过将所有依赖项迁移到NuGet服务器来解决该问题。

天蓝色文物

您提到,您正在使用Azure DevOps作为主要的CI / CD工具,因此这是一个很好的机会,可以将Azure Artifacts引入内部 nuget服务器,它是Azure DevOps的一部分。前2 GB是免费的,这里有pricing details

替代品

如果由于某些原因您不能使用Azure Artifacts,我建议您使用一些替代方法:

  • MyGet
  • ProGet
  • 自己的Nuget服务器

您可以在this article中找到有关替代品的更多信息。