如何使用开源依赖项组织开源Visual Studio项目?

tra*_*max 12 c# open-source projects-and-solutions github

我已经开始使用一些其他开源项目作为依赖项的开源MVC4项目.我已经分叉了另一个项目,并将根据我的需要对其进行修改.我面临的问题是如何保持这些项目相互依赖,但需要单独维护.然而,git拉动我的项目的人也会得到依赖项目吗?

  1. 我可以将所有相关代码从其他项目中抨击到我的存储库中,但这样我就无法为依赖项目的分支做出贡献.我将成为我的存储库的一部分.不是真的想那样做.
  2. 我可以完全单独维护其他项目,并将*.dll文件复制到我的项目中.并将依赖的dll文件提交到git中.这很好,但是我没有能力同时开发两个项目,同时在调试时踩到相关代码(好吧,如果复制*.pdb文件也可能没有)
  3. 与第2点类似,我可以从依赖项目构建nuget包并将它们添加到我的主项目中 - 再次,不能真正同时开发两个项目,需要切换上下文.
  4. 有一些魔术有一个解决方案文件,它结合了我的存储库和依赖存储库中的项目.在每个构建中,将依赖的dll文件复制到/ lib文件夹并提交它们.这样我就不需要在单独的项目之间切换上下文.但缺点是当其他贡献者git拉动我的项目时,他们不会得到依赖项目,并且解决方案文件可能会被破坏,因为它将引用不在repo中的项目.

在这种情况下,您如何组织代码?

Dav*_*rdi 5

通常我会将nuget用于所有依赖项.当我分叉一个项目时,我会将它部署在nuget和符号源上.通过这种方式,您可以毫无问题地进入依赖关系源.

有关符号源和nuget的更多信息,另请参阅: 创建和发布符号包.要启用符号源调试,请参阅http://www.symbolsource.org/Public/Home/VisualStudio.

您还必须记住启用Nuget包还原.

使用此解决方案,您无法修改源代码,但至少可以调试它.