在我的日常工作解决方案中,我们大约有 80 个项目。该解决方案包含 4 个不同的网站、业务逻辑和基础设施组件(例如扩展方法、各种实用程序、存储库基类等)。
该解决方案效果很好,但是如果我们将测试项目添加到解决方案中,我们很容易通过 100 多个项目,这使得使用该解决方案非常乏味。
在我寻找解决方案的过程中,我对 Nuget 非常感兴趣,我开始想知道它是否可以帮助我们。
想法是将庞大的解决方案拆分为更小的原子片段,其输出将是一个 Nuget 包,以上传到私有 Nuget 存储库。
网站将引用绑定到该特定网站的类库以外的包。
从 CI 的角度来看:
每个包解决方案都应该是原子的。
- 它应该能够获取它的引用(其他 NuGet 包,来自官方提要和私有提要);
- 建造
- 运行它的测试
- 组装一个包
- 将新包上传到存储库
产品解决方案(比如网站)应该在以下之后构建:
- 提交他们的代码
- 私有存储库上 NuGet 包的更新
有什么建议吗?或者也许是一种更好的方法来实现这个巨大的解决方案的分裂?