我现在正在进行一个大项目的重构工作,这个项目有很多遗留和不稳定的模块。我决定将当前包含所有项目的解决方案(大约20个,由于单元测试项目的原因,未来还会有更多)分割成更独立和粒度更细的解决方案。
采用这种方法后,有些模块(如API客户端)需要在多个解决方案中引用或添加。问题在于,Nuget包只能在第一次添加它的解决方案中进行恢复。最简单的例子如下:
解决方案A: - 项目A - APIClient
解决方案B: - 项目B - APIClient
由于我们没有包含packages文件夹,这会导致Nuget包的问题:
1. 克隆repo。 2. 打开Solution B,构建并还原解决方案的Nugets。 3. Solution B中的ClientAPI包出现错误。 4. 转到Solution A,构建并还原解决方案的Nugets。 5. 回到Solution B。 6. Solution B中的ClientAPI Nugets已经被还原,错误已消失。
有没有办法以某种方式: - 使每个解决方案使用不同的路径? - 可能将解决方案链接在一起构建,使Solution A始终与Solution B一起构建?但这听起来像是失去了将这个大解决方案分解成更小的解决方案的一些好处。 - 使用其他方法使其更粒度更细,但不会遇到必须重新构建所有内容的问题?我听说过私有Nuget feeds,如果我的配置允许,这是否是解决此问题的答案?
我的配置: - 版本控制系统:TFS with TFVC - IDE:Visual Studio Proffesional 2017 - 默认包管理格式:Packages.config
采用这种方法后,有些模块(如API客户端)需要在多个解决方案中引用或添加。问题在于,Nuget包只能在第一次添加它的解决方案中进行恢复。最简单的例子如下:
解决方案A: - 项目A - APIClient
解决方案B: - 项目B - APIClient
由于我们没有包含packages文件夹,这会导致Nuget包的问题:
1. 克隆repo。 2. 打开Solution B,构建并还原解决方案的Nugets。 3. Solution B中的ClientAPI包出现错误。 4. 转到Solution A,构建并还原解决方案的Nugets。 5. 回到Solution B。 6. Solution B中的ClientAPI Nugets已经被还原,错误已消失。
有没有办法以某种方式: - 使每个解决方案使用不同的路径? - 可能将解决方案链接在一起构建,使Solution A始终与Solution B一起构建?但这听起来像是失去了将这个大解决方案分解成更小的解决方案的一些好处。 - 使用其他方法使其更粒度更细,但不会遇到必须重新构建所有内容的问题?我听说过私有Nuget feeds,如果我的配置允许,这是否是解决此问题的答案?
我的配置: - 版本控制系统:TFS with TFVC - IDE:Visual Studio Proffesional 2017 - 默认包管理格式:Packages.config