gpt4 book ai didi

c# - 为 .NET 解决方案设置 Git 存储库

转载 作者:IT王子 更新时间:2023-10-29 00:42:40 26 4
gpt4 key购买 nike

我有一个包含 15 个 C# 项目的解决方案,我正在尝试为它们建立一个高效的 git 存储库。我应该在该级别还是为解决方案下的每个项目创建一个存储库?

WebServices/
|- WebServices.sln
|- WebService1/
`- WebService1.csproj
|- WebService2/
`- WebService2.csproj

该解决方案有一个项目引用 ../framework/framework.csproj 这是一个单独的存储库,所有其他项目都有一个引用。该解决方案下的项目没有任何联系,但它们都使用该框架。

我希望将框架的任何更改传递给项目。

您是否可以指导我如何以最佳方式实现这一目标?

最佳答案

对于如何设置存储库没有唯一的答案。这取决于您的具体需求。

您应该问自己的一些问题包括:

  1. 是否所有项目都将单独发布和版本控制?
  2. 这些项目真的相互独立吗?
  3. 您的开发团队的结构如何?各个开发者是否只专注于一个项目?
  4. 你的框架项目稳定吗?
  5. 您的构建过程是否分别构建每个项目?

假设以上所有问题的答案都是"is",那么我会这样设置:

  • 继续在自己的存储库中维护框架代码,并使用 NuGet 将其发布到内部服务器(如 ssube 的评论中所建议)。
  • 为每个项目创建一个单独的存储库,每个项目都有自己的解决方案文件。

如果您可以对上面的#5(可能还有#1)以外的所有项目说"is",那么我会再添加一个存储库,其中包含每个单独项目的子模块和您的构建服务器的全局解决方案文件可以使用。如果你添加一个新项目,你必须记得同时更新这个存储库!

如果您不得不对 #2 说“不”,那么只需构建一个存储库即可。

如果您必须对 #3 说“不”,那么您将不得不做出判断,在代码分离和开发人员需要在 repo 协议(protocol)之间切换之间做出判断。您可以创建一个单独的存储库,包括子模块,但如果您的所有开发人员最终都使用该存储库,那么您实际上只是在引入新的维护而收效甚微。

如果您的框架不稳定(#4),那么您可能希望在任何这些情况下将其作为子模块包含在内。我建议,一旦它变得稳定,您就可以考虑删除子模块并在那时切换到 NuGet。

关于c# - 为 .NET 解决方案设置 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23414771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com