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

时间:2013-10-25 09:14:01

标签: c# .net visual-studio shared-libraries nuget

我有一个相当复杂的项目,可生成大约10个不同的可执行文件。 所有这些项目都有一个由我开发的公共库,用于在它们之间共享代码。 (把它想象成依赖树的根节点)。

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

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

  1. 它应该存在于内部nuget存储库中,然后所有可执行项目都通过nuget依赖它吗?
  2. 我是否应该为5种不同的Visual Studio解决方案中使用的公共库保留相同的.csproj文件?
  3. 我知道每种方法都有利弊。我想知道人们在那里做了什么。

    谢谢, 瑞

2 个答案:

答案 0 :(得分:2)

我会推荐NuGet选项。

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

答案 1 :(得分:2)

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

Nuget软件包一次安装不会更改,除非您不发布/构建另一个并记住来更新您的解决方案。

这不是链接项目的情况。有一次你在其中修复了一个错误或者添加了新的功能,你至少可以从以下两个方面获得

  • 所有解决方案中都会立即显示更改
  • 考虑到他们是不同的解决方案,你可以更容易理解,如果你破坏了什么。