我正在研究简化当前的源代码库和解决方案设置。现在,它非常复杂和巨大,即使是最简单的代码,也可能非常耗时。
为简单起见,我们说我有以下设置:
他们由3个解决方案管理:
所有这一切目前都由一个单一的源代码存储库控制,我在其中应用了一个分支方案,该方案始终使用Main,Development和Release分支。
正如您所看到的,库项目被多次引用,并且正如人们所预料的那样,当多个开发人员在同一个库上工作时,这有时会导致冲突。 正如我之前提到的,实际上我有更多的图书馆项目。现在有一些解决方案包含50多个项目,几乎所有解决方案都包含相同的项目。 为了使它们更易于维护,我想将库项目移动到他们自己的解决方案中并创建它们的NuGet包。
我还有三个部署环境的环境:
我面临的问题是,我不太清楚如何将NuGet软件包纳入此部署策略,因为在一个sprint过程中所有项目都会进行开发,如果开发人员检出 发布分支或主分支创建一个热门修复程序,我不希望他弄乱引用的NuGet包并意外地将开发包引入主分支。
从构建目的来看,在构建库项目并将每个分支的NuGet包发布到不同的存储库时,可以简单地使用相同的分支策略。 从开发人员的角度来看,我不知道如何在多个存储库之间轻松切换。在结帐不同的项目或分支时,我无法为开发人员打扰修改他们的NuGet存储库URL。
所以问题是:什么是并行积极开发一组库和前端项目的正确方法?
我不认为我想要做的就是那么困难,或者我一个人想要这样做。然而,我没有找到任何相关的文件。我完全错了吗?
答案 0 :(得分: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。