获取最新的解决方案文件或解决方案文件夹(复杂依赖项)

时间:2014-06-14 15:26:48

标签: visual-studio version-control tfs

我大部分时间都看到开发人员如何处理解决方案,右键单击源代码管理中的解决方案文件夹,选择"获取最新消息"并且......有很多问题:解决方案的项目从其他解决方案中引用其他项目,缺少参考资料等......

以下是我们在工作中类似的模拟示例...... enter image description here

现在,假设您必须使用TicketsSolution,特别是修复一些错误,使用TicketsSolution的Web项目进行更改。通常开发人员右键单击TFS / VSS中的TicketsSolution文件夹(无论如何)并选择" Get Latest" ...并且上面提到的问题正好面对他们。

事实证明,TicketsSolution还包括

等项目

Common.Solution1.Project1,可能引用Common.Solution2.Project1

Common.Solution1.Project2

WCFServicesLibrary项目,可能引用SQLServerProxy项目

另外,一些外部的第3个patry DLL已丢失或放在ROOT下但在TicketsSolution文件夹之外......

在这种情况下,当您获得TicketsSolution文件夹的最新内容时,所有这些引用都将丢失,

所以获取最新的唯一合理方式会右键点击解决方案文件,例如TicketsSolution.sln并仅获取该文件的最新信息。然后,在Visual Studio中打开TicketsSolution.sln文件有望:)重建解决方案所需的解决方案文件夹内外的所有树节点。

即使在这种方法中,外部DLL libabries的引用也会被遗漏,因为VS知道如何重建文件夹树,但它不包含在TicketsSolution文件夹之外引用的DLL。

但是90%的开发人员获得了最新的解决方案文件夹并且遇到了大量问题。

所以,我的问题是 - 在这种情况下,在TicketsSolution解决方案中包含外部项目是否正确,或者添加" lib"更合理。在TicketsSolution文件夹下的文件夹中删除所有这些外部相关项目的dll,然后从解决方案的项目中引用它们,而不是从上层重建整个文件夹树的所有依赖项目(可能和可能会有自己的依赖和引用问题)??

1 个答案:

答案 0 :(得分:3)

Lib文件夹使生活更简单,但在构建层次结构中引入了其他问题。 另外,你必须将你的库存储在源代码管理中,这对某些人来说是不可能的。

我使用本地NuGet Feed。

我认为对你的问题最简单的答案是创建一个.bat文件,编写你需要检查解决方案的文件夹的签出调用,存储在TFS上的解决方案根文件夹中。

让开发人员单击bat文件以获取解决方案的所有文件的最新信息。