【发布时间】:2015-11-11 04:42:30
【问题描述】:
我正在寻找关于哪种方法被视为最佳做法的一些想法。
场景: .NET SVN 存储库由多个项目组成,其中一些共享相同的 NuGet 包。还存在多个解决方案文件,每个解决方案文件都有一个子集,有些重叠。
例子:
a.sln
--> proj1 - log4net, nunit(v1.0.0)
--> proj2 - log4net, json
--> proj3 - log4net, nunit(v1.0.0)
b.sln
--> proj2 - log4net, json
--> proj4 - nunit(v1.0.0)
当开发人员打开a.sln 并将该解决方案中所有项目的nunit(v1.0.0) 包更新为v2.0.0 时,就会出现问题。这使得proj4 的nunit 仍然在v1.0.0 上,并且假设所有二进制文件都复制到一个输出文件夹,首先构建的解决方案将确定哪个版本的nunit 可用。
方法一:
编写一个由a.sln 和b.sln 使用的项目,其唯一目的是包含所有项目的所有NuGet 引用,并将所有文件输出到一个文件夹,例如Externals。修改所有项目以手动引用此文件夹内的dll。
方法 #2: 更新软件包时要谨慎,并为每个解决方案重复该过程。
方法#3: 创建一个包含所有项目的解决方案,避免使用多个解决方案。
我有强烈的偏好,但希望获得社区反馈并保持开放的心态。
【问题讨论】: