公共库:NuGet 与共享 .csproj 文件.什么是最好的方法

本文关键字:什么 方法 文件 csproj NuGet 共享 | 更新日期: 2023-09-27 18:36:54

我有一个相当复杂的项目,它产生了大约 10 个不同的可执行文件。所有这些项目都有一个公共库,也是我开发的,目的是在它们之间共享代码。(将其视为依赖树的根节点)。

因为这 10 个可执行文件中的每一个都相当复杂,并且还有其他特定的库,所以我实际上有大约 4 或 5 个不同的 Visual Studio 解决方案,以使功能更加包含,并避免将完全不相关的可执行文件混合在一起。

我想知道这两个选项中的哪一个是管理我的公共图书馆项目的最佳方式(社区是如何做到这一点的):

  1. 它是否应该存在于内部 NuGet 存储库中,然后所有可执行项目都通过 NuGet 依赖于它?
  2. 我是否应该为5种不同的Visual Studio解决方案中使用的公共库保留相同的.csproj文件?

我知道这些方法各有利弊。我只想知道人们在那里做什么。

谢谢芮

公共库:NuGet 与共享 .csproj 文件.什么是最好的方法

我建议第二种解决方案在您的情况下更具可维护和可扩展性。

除非

不发布/生成另一个包并记住更新解决方案,否则一次性安装的 Nuget 包不会更改。

链接项目不是这种情况。一旦您修复其中的错误或添加新功能,您至少可以从两个方面受益:

  • 更改立即显示在您的所有解决方案中
  • 考虑到它们是不同的解决方案,如果您破坏了某些东西,您可以更容易理解。

我会推荐NuGet选项。

如果您使用的是共享项目的不同版本,则效果会更好。即,如果共享库发生更改,则不需要立即更新所有其他项目。