【问题标题】:How to manage nuget between 2 microservies如何管理 2 个微服务之间的 nuget
【发布时间】:2021-11-24 23:15:34
【问题描述】:

我有 2 个用 .net 编写的服务。

假设 A 和 B

在服务 B 中,有一个项目正在使用 Jenkins 构建到 NuGet 包中。每当我们对该项目进行新的更改时,NuGet 包都会增加 1。

服务 A 正在将 NuGet 包用于某些共享模型。

问题在于,在开发过程中,我可以在服务 B 中进行大量更改,即我需要在服务 A 中测试的 NuGet 包。 为了让服务 A 看到服务 B 中的更改,我需要将其推送到分支中以便进行构建。但是,这会一直更新 NuGet 版本。

有办法解决吗?

我试图删除A中对NuGet包的引用,并手动引用dll,但该NuGet中有太多依赖项会破坏代码

【问题讨论】:

  • 通常,尝试将包作为独立的解决方案,可以独立于使用它们的服务进行开发。我发现从长远来看,这会让事情变得更容易
  • 我回答了一个类似的问题,也许这可以帮助你:stackoverflow.com/questions/69027489/…

标签: .net nuget


【解决方案1】:

添加本地 NuGet 源应该可以工作。整个过程应该遵循这个模式:

  1. 创建本地文件夹,用于在本地存储包。
  2. 找到服务 A 的 nuget.config 或创建它。通常它位于解决方案文件夹中,但其他 well-known 位置以及任何自定义位置都是可能的。
  3. 将本地文件夹添加到 nuget.config 中的 部分。
  4. 将服务 B 构建到包中并发布到本地文件夹。
  5. 将软件包升级到最新版本。

由于所有这些步骤都可以使用命令行工具(nuget.exe、dotnet、msbuild)完成,因此它们可以在某些脚本语言(例如 Powershell)中自动化,并且应该很容易将它们插入任何构建自动化工具中如果你有的话。

还有一些工具可以跨许多存储库自动进行依赖管理。它们特别适用于大型软件产品,其中许多不同的部分由许多不同的团队构建,并且不同部分之间有许多共享库。我从这个问题猜想你的情况要简单得多,这样的工具对你来说太过分了..

【讨论】:

    猜你喜欢
    • 2019-01-18
    • 2021-04-23
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 2019-05-13
    • 2017-11-09
    • 2020-11-05
    相关资源
    最近更新 更多