gpt4 book ai didi

c# - 为多个应用拆分 .NET 解决方案/Git 存储库

转载 作者:太空狗 更新时间:2023-10-29 13:15:26 25 4
gpt4 key购买 nike

我目前有一个单一的解决方案,其中包含迄今为止开发的一个应用程序和所有自主开发的库的项目。整个解决方案也保存在一个 Git 存储库中。我现在要开发第二个应用程序,它将使用这些相同的库。该应用程序将具有与第一个不同版本不同的发布周期。我的问题(或多个问题)是如何在解决方案设置和 Git 方面拆分代码。

在谈论答案之前的一些其他有用的细节:

  1. 应用程序部署到共享网络驱动器,而不是单独的计算机,因此我可以完全控制它们的部署时间以及随它们部署的内容
  2. 一旦构建,库 DLL 就不会被应用程序共享。每个应用程序在其文件夹中都有所有 DLL、PDB 和配置文件的完整副本。
  3. 目前,只有我一个人在做发布,但另外一两个人可能最终会做发布,所以我想记住这一点。

我脑子里想了几个主意,但似乎都不令人满意。我考虑过将所有内容都保存在一个解决方案/一个 Git 存储库中。我还考虑过使用子模块将解决方案拆分到多个 Git 存储库中,但子模块很麻烦。我还考虑过让每个应用程序都有自己的解决方案,而所有的库都在另一个解决方案中。那么问题是我是否可以在 visual studio 中打开多个解决方案。库经常需要随着应用程序的变化而变化,因此将它们过多地分离在单独的解决方案或 Git 存储库中会使库和应用程序保持同步变得困难。我担心的另一个问题是分支。如果我将解决方案拆分为多个 Git 存储库,我可以为每个应用程序创建分支,但如果我保留一个 Git 存储库,我只能为所有内容创建一组分支。

我什至可能没有问自己正确的问题,也有可能是我的心理障碍使我无法解决简单的解决方案。无论哪种方式,我都希望 SO 社区能给我一些想法。我希望一切都清楚,但如果没有,我很乐意澄清。

最佳答案

虽然它们可能很麻烦,但我认为子模块是进行此操作的方式。我只是猜测你的目录结构是这样的:

mainapp
\mainappdir
\somefiles
...
|
|
\library1
|
\library2

在那种情况下,您希望 library1 和 library2 是子模块(这可能很明显)。它们真的没那么糟糕,只是需要在 Git 恕我直言中习惯一些东西。

要考虑的另一种方法是在您的文件系统上符号链接(symbolic link) library1 和 library2 以供两个应用程序使用。在那种情况下,每个库都可以是它自己的 repo,但不使用子模块进行管理(我认为你必须将它们添加到你的 .gitignore 文件中)。通过在每个应用程序中使用符号链接(symbolic link),repo/source management 将只在两个库目录中。在一个地方 pull/分支会影响两个应用程序,而不需要管理每个应用程序的库文件。

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

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