【发布时间】:2019-07-29 01:11:46
【问题描述】:
我现在正处于一个大型项目的疯狂重构阶段,该项目有很多遗留和不稳定的模块。我决定拆分解决方案,将当前包含所有项目(大约 20 个,因为单元测试项目肯定会在下个月出现)链接在其中,以使其更加独立和颗粒状。
使用这种方法有模块,例如需要在多个解决方案中引用或添加的 API 客户端。
问题在于,Nuget 包仅在最初首次添加的解决方案上得到恢复。所以最简单的例子:
解决方案 A:
------项目A
------API客户端
解决方案 B:
------项目B
------API客户端
由于我们不包含 packages 文件夹,因此会导致 Nuget 包出现问题:
克隆存储库。
打开解决方案 B,构建它并恢复 Nugets 以获得解决方案。
解决方案 B 中的 ClientAPI 包错误。
转到解决方案 A 构建它并恢复 Nugets 以获得解决方案
返回解决方案 B。
为解决方案 B 中的 ClientAPI 恢复 Nuget,并且错误消失了。
有没有办法:
- 为每个解决方案使用不同的路径制作项目?
- 也许在构建中使用链式解决方案以使解决方案 A 始终与解决方案 B 一起构建?但这听起来失去了将这一大解决方案拆分为较小解决方案的一些好处。
- 使用任何其他方法使其更细化,但又不会因需要全部重建而遇到问题?我听说过私有 Nuget 提要,如果我的配置允许,这可以解决这个问题吗?
我的配置:
- VCS:带有 TFVC 的 TFS
- IDE:Visual Studio 专业版 2017
- 默认包管理格式:Packages.config
【问题讨论】:
标签: c# visual-studio build nuget projects-and-solutions