使用解决方案资源管理器和使用源代码控制资源管理器在使用TFS时有什么区别?

5
尝试使用TFS 2010时,我对在Visual Studio 2010中使用本地文件副本时应该选择哪个选项感到困惑:解决方案资源管理器还是源代码控制资源管理器

对于像我这样的初学者来说,解决方案资源管理器是更自然的方法,但使用源代码控制资源管理器似乎更方便和高效。有更多的选项可用,但单击文件仍会打开其本地副本。

使用其中一种方法的优势是什么?
我是否仍然应该选择文件 => 打开 => 项目/解决方案或者更好的是使用团队资源管理器 => 源代码控制(它似乎更快)?
在什么情况下,明显使用解决方案资源管理器更好(甚至是唯一的)选项?

2个回答

8
解决方案资源管理器是用于处理解决方案的,也就是开发过程中。当你从解决方案资源管理器中打开文件时,你实际上是打开了项目的一部分——VS会考虑从该文件中应该可见哪些程序集、命名空间等,这样就能提供智能感知。此外,解决方案资源管理器上的上下文菜单针对的是开发过程——请注意所有这些“生成”、“重新生成”、“设置为启动项目”等选项。

当你在解决方案资源管理器中查看你的解决方案时,你只会看到那些在源代码中使用的部分,也就是编译后的文件、资源等。此外,可能会出现这样的情况:某个文件包含在解决方案中,但未包含在源代码控制中,唯一能看到它的地方就是解决方案资源管理器

源代码控制资源管理器则是用于处理源代码控制的。它允许你添加和删除仓库中的文件,进行签入、签出、更新等操作。它与开发过程没有直接关系——例如,源代码控制资源管理器不会给你提供任何编译的机会。在源代码控制资源管理器中打开文件只是打开单个文件——是的,它仍然可以编辑,但它不知道上下文,不能提供智能感知等功能。

当你在源代码控制资源管理器中查看源代码时,并不局限于单个解决方案。想象一下这样的情况:你还有一个包含项目文档(规格、模型)的文件夹在源代码控制中。你可能不想将它们包含在你的解决方案中,但你仍然需要以某种方式控制它们——更新它们在源代码控制中的版本、添加新的等等。如果你在解决方案资源管理器中,就无法做到这一点,因为你无法看到解决方案之外的任何东西。因此,唯一能处理这些文件的地方就是源代码控制资源管理器

总之,解决方案资源管理器用于处理源代码,也就是开发过程,源代码控制资源管理器则用于处理源代码控制。


1

解决方案资源管理器通常用于本地工作。您将检出文件,进行所需更改,然后将文件检入。但有时从解决方案资源管理器获取最新版本可能会有些棘手。最好使用源代码控制资源管理器来获取文件的最新版本。因此,在我的情况下,我一天开始时要做的第一件事是使用源代码控制资源管理器获取最新文件,然后在整个工作日中使用解决方案资源管理器与 TFS 进行交互。


但有时从解决方案资源管理器中获取最新版本可能会很棘手。最好使用源代码控制资源管理器来获取文件的最新版本。你能详细说明一下吗? - mbx
1
我正在一个项目上工作,其中几个项目文件在两个不同的Visual Studio解决方案之间共享。当我从“解决方案资源管理器”获取最新版本时,有时并不是所有相关文件都被更新为最新版本。但是,从“源代码控制资源管理器”获取最新版本可以保证获得所有最新的文件。希望这回答了你的问题,mbx. - Manoj Attal
它确实如此,但又引出了另一个问题 :-) 你如何管理构建/测试过程?如果你在一个解决方案的上下文中检入了共享项目的更改,那么你需要触发所有其他受影响解决方案的测试。 - mbx
1
是的,由于构建过程混乱不堪。但是我们现在正在使用Jenkins进行持续集成。它为我们带来了神奇的效果。对于每次检入,它都会启动一个构建,并在任何解决方案中出现构建失败时返回。因此,我们现在找到问题所需的时间只有20分钟。 - Manoj Attal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接