3

我正在研究简化当前的源代码存储库和解决方案设置。现在它非常复杂和庞大,即使对最简单的代码进行更改也可能非常耗时。

为了简单起见,假设我有以下设置:

  • 我有 1 个网站项目 (W1)
  • 我有 2 个 Web 服务项目(S1、S2)
  • 我有 3 个类库项目(L1、L2、L3)

它们由 3 个解决方案管理:

  • 1 个包含 W1、L1、L2、L3 并使用对 S1 和 S2 的服务引用的解决方案
  • 1 溶液含 S1、L1、L2、L3
  • 1溶液含S2、L1、L2、L3

所有这一切目前由 1 个单一源代码存储库控制,我在其中应用了一个始终使用 Main、Development 和 Release 分支的分支方案。

正如您所见,库项目被多次引用,并且正如人们所预料的那样,当多个开发人员在同一个库上工作时,这有时会导致冲突。正如我之前提到的,实际上我有更多的图书馆项目。现在有包含 50 多个项目的解决方案,几乎所有解决方案都包含相同的项目。为了使它们更易于维护,我想将库项目移动到它们自己的解决方案中,并为它们创建 NuGet 包。

我还有三个部署环境的环境:

  • 开发分支构建的 TST 环境每天被推送到
  • 发布分支构建被推送到的 QA 环境
  • Main 分支构建被推送到的 LIVE 环境

我面临的问题是,我不太明白应该如何将 NuGet 包合并到此部署策略中,因为在一个 sprint 的过程中所有项目都会进行开发,并且如果开发人员签出 Release 分支或 Main 分支要创建一个热修复程序,我不希望他弄乱引用的 NuGet 包并不小心将 Development 包引入 Main 分支。

从构建目的来看,在构建库项目时只需使用相同的分支策略并将每个分支的 NuGet 包发布到不同的存储库是可行的。从开发人员的角度来看,我不知道如何在多个存储库之间轻松切换。当签出不同的项目或分支时,我不能打扰开发人员修改他们的 NuGet 存储库 URL。

那么问题来了:积极并行开发一套库和前端项目的正确方法是什么?

我不认为我想做的事情有那么困难,或者我一个人想要这个。然而,我没有找到任何相关文档。我看这完全错了吗?

4

1 回答 1

1

答案其实很简单。

就我而言,最好的解决方案是在NuGet Config File中为每个分支定义不同的包源。

<packageSources>
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <add key="MyRepo - ES" value="http://MyRepo/ES/nuget" />
</packageSources>

我可以为每个分支创建不同的 NuGet 存储库,为每个分支创建不同的 NuGet 配置文件,并在该配置文件中简单地定义正确的存储库 URL。

于 2014-07-01T06:00:11.173 回答