Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 一个解决方案是否可以包含来自两个TFS集合的项目_Visual Studio_Tfs - Fatal编程技术网

Visual studio 一个解决方案是否可以包含来自两个TFS集合的项目

Visual studio 一个解决方案是否可以包含来自两个TFS集合的项目,visual-studio,tfs,Visual Studio,Tfs,我们正在考虑为我们的软件产品之间共享的代码创建一个独特的集合。然后我们会有一个软件项目的集合。这将是为了组织目的。解决方案是否可以引用位于两个不同集合中的c#项目?解决方案可以包含来自任何地方的文件,因为它们需要映射到一个loal磁盘,以便Visual Studio打开它们,但当将代码传播到多个集合时,源代码控制集成将中断。团队资源管理器要求所有代码都来自同一个集合,并且它支持所有代码都来自单个团队项目的解决方案,在这种情况下,其他功能将最有效 当您的工作分布在多个项目和/或集合中时,VST和T

我们正在考虑为我们的软件产品之间共享的代码创建一个独特的集合。然后我们会有一个软件项目的集合。这将是为了组织目的。解决方案是否可以引用位于两个不同集合中的c#项目?

解决方案可以包含来自任何地方的文件,因为它们需要映射到一个loal磁盘,以便Visual Studio打开它们,但当将代码传播到多个集合时,源代码控制集成将中断。团队资源管理器要求所有代码都来自同一个集合,并且它支持所有代码都来自单个团队项目的解决方案,在这种情况下,其他功能将最有效


当您的工作分布在多个项目和/或集合中时,VST和TFS中的其他功能将更难使用。测试计划、敏捷工具、团队能力和其他一些项目纯粹局限于项目级别。同时在多个项目中工作会使团队更难正确使用这些工具。由于这些原因,许多TFS顾问实施了“一个项目来管理所有人”的战略。将所有代码和所有工作放在一个团队项目中

XAML和2015构建引擎一次只能访问单个项目集合中的源。因此,虽然可以设置多个本地工作区,每个工作区映射到不同的团队项目和/或项目集合,但在使用TFS附带的标准生成服务器时,这是不可用的。其他构建工具(如TeamCity)可以同时链接到多个源代码管理提供程序

既然可以在同一个团队项目下拥有多个Git存储库,那么这种方法就更有意义了

其他更难的事情可能包括分支结构,当代码的不同版本分布在集合中时,将很难管理它们,因为标签和分支不能跨集合,并且在多个项目中工作时很难维护

对您来说,更好的解决方案可能是将共享代码放在单独的团队项目或项目集合中,而不是以VisualStudio项目的形式直接包含在其他项目中。相反,将共享项目存储为NuGet包,存储在私有NuGet提要或启用包管理的VSTS帐户上

这样,您的其他项目将更快地构建(如果设置正确,这可能非常重要),将使用共享库的二进制版本,并且具有更简单的解决方案


将所有代码放在单个团队项目或项目集合中的一个缺点是更难维护安全性。TFS内部自然边界的项目集合,一个更难被意外误解或突破的集合。

正如@jessehouwing所说,解决方案可以包含来自多个集合的文件。每个集合都有一个本地工作区,从中可以将项目/文件附着到解决方案

我不同意的是,这实际上是一个好主意。有10+个集合是没有问题的,每个集合都有特定的用途

例如,对于一般项目,除非必要,否则没有人会更新。一个是用来存储脚本的。基本上把它想象成图书馆的书架。在某种程度上,所有类似的东西都应该放在身边

另一个优点是安全性,因为一个团队可以访问某些集合,但不能访问其他集合。这是一个明显的优点

至于时差,1-2秒真的对任何人都有影响吗。再添加一个代理,您将节省时间,因为本地构建没有任何区别


至于标签,特定目的策略有助于克服这些问题。

我知道,这就是你在回答中所说的。但是当你有数百名开发人员一起工作时,这是必要的。唯一真正的失败是标签。我的客户在一个团队项目中有400名开发人员。使用Git,一个经过深思熟虑的团队结构,以及对区域和迭代路径的一致使用,使得这项工作很好。与单独的解决方案、项目和锁定的安全性相比,共享、协作和协作要容易得多。但与一些公司一样,锁定的安全性是必要的。我只是分享了我的观点。您需要了解tfs有很多可能帮助开发人员使用各种解决方案。“项目级。同时在多个项目中工作会使团队更难正确使用这些工具。”这是关键。你们认为我是说相同目的的项目应该分开。再读一遍我的答案。如果你有10个3个主要团队在3个不同的软件上工作,那么拥有7个集合是一个完美的解决方案。1-对于所有人都可以共享但不可能修改的基本项目,每个团队1个用于其解决方案,1个用于脚本。每个团队可以使用相同的命名和结构约定。你从一支球队到另一支球队,就像在家一样