2011-12-14 105 views
0

我们目前正在将源代码控制从Subversion切换到TFS。这对于可以检出,编辑,编译和检入的独立项目/解决方案来说很好。TFS和IIS - 源代码管理

我遇到了一点头痛,试图让它顺利地运行我们有特定的项目/解决方案。

这是一个有几个C#项目和IIS /网站/应用程序的解决方案。 IIS网站大部分都是经典的ASP与一些C#/。NET作品(我们正在慢慢转换作品)。这样,我们在本地测试网站,并将更改提交到存储库。它不是一个小网站,它总共有500多个文件(图像,ASP,ASPX等)。通常,在Subversion中,我们只是查看单个项目,并且我们的解决方案包含而不是在源代码管理下(考虑到有些人将其本地IIS实例映射到不同的驱动器)。当我们编辑一个文件时,它会被标记为被修改,并且我们可以检查它,还原我们的修改等(我在VS2010中使用VisualSVN,它为我提供了所有这些方便的选项)。

使用TFS时,当我尝试这个相同的路径(把网站放在源代码控制中,将它映射到我的IIS实例指向的目录) - 项目/解决方案加载得很好 - 但解决方案资源管理器不显示任何在源代码控制中的指示 - 如果我双击一个文件并尝试编辑它 - 它向我尖叫它处于只读模式。

所以 - 我的问题很简单 - 我如何让TFS与源代码管理中的IIS网站平稳工作,因此我的解决方案资源管理器可以显示我本地的文件是否正确或被修改(ala Subversion)?如果没有这个“只读”的抓握?

我不介意将解决方案的IIS部分作为“文件/文件夹”项目加载(现在在我们的解决方案中,IIS部分是指向我们计算机上IIS站点的IIS实例)。

TLDR:我怎么会得到TFS来源控制一个IIS网站,在解决方案资源管理器中给我漂亮的图标 - 而不必在TFS中拥有解决方案呢?顺便说一下,这是IIS7。

回答

0

您可能想要考虑分支和合并策略。这是一个复杂的话题,但有很多指导。这可能是一个良好的开端:

http://branchingguidance.codeplex.com/

此外,如果你看看你的web应用程序的性能,我相信,有在项目文件中的一个选项,以“应用服务器设置为所有用户(店)“如果你不勾选我认为你可以让每个开发人员保持自己的设置映射到IIS的位置而不保存回存储库。

您的本地副本(称为工作区)可以位于任何您想要的位置。这是我认为特定于用户/主机的内容,因此您的设置不应该影响其他任何人。这听起来像您可能需要将IIS配置为指向您的工作区或将您的工作区配置为指向您的IIS正在查找的任何位置。

+0

我可以得到项目和解决方案“工作” - 但它不会表现平稳 - 我的问题是双击解决方案资源管理器中的文件,并尝试编辑它 - 我得到一个“文件是只读的“ 信息。我在文件旁边看不到漂亮的图标,告诉我他们的状态(修改,签入等)。 – Jason 2011-12-14 16:48:10

2

团队资源管理器使用只读而是查看哪些文件在本地发生了更改。它使用工作区映射让您可以将解决方案的一部分放在一个目录中,将另一部分解决方案放在另一个目录中。

您可以安装Team Foundation Power Tools to integrate TFS with Windows Explorer,它允许您在编辑文件之前检出文件。 (这也将删除只读位)。

由于Visual Studio将源代码控制绑定与解决方案一起存储,因此在使用Visual Studio编辑项目时,不要将解决方案放在源代码控制中会让您陷入麻烦。

更好的解决方案是add all the files of your website to a Web Project,即使他们是asp文件或任何其他类型的事情。 Visual Studio可以很好地处理这些问题。然后使用Visual Studio为您处理签出过程。

然后,您可以使用web projects properties中的“使用本地IIS”选项将Web项目配置为集成到IIS中。这将在您打开解决方案时自动将IIS映射到正确的文件夹。

您可以使用a custom workspace configuration to make sure TFS puts the folders where you want them to,如果您愿意,可以为每台计算机创建一个不同的工作区,但如果不同的团队成员进行标准化则更容易。而且,如果你能够将所有资源放在一个文件夹中并让项目属性为你处理IIS配置,那就更好了。

TFS/Visual Studio的下一个版本将support both client and server workspaces这将删除对只读位的要求。