【问题标题】:TFS and IIS - Source ControlTFS 和 IIS - 源代码控制
【发布时间】:2012-01-20 08:07:24
【问题描述】:

我们目前正在将源代码控制从 Subversion 切换到 TFS。这适用于可以签出、编辑、编译和重新签入的独立项目/解决方案。

我有点头疼,试图让它与我们拥有的特定项目/解决方案一起顺利运行。

这是一个包含几个 C# 项目和一个 IIS/网站/应用程序的解决方案。 IIS 网站主要是带有一些 C#/.NET 片段的经典 ASP(我们正在慢慢转换这些片段)。这样,我们在本地测试网站,并将更改提交到存储库。这不是一个小网站,总共有 500 多个文件(图片、ASP、ASPX 等)。

通常,在 Subversion 中,我们只检查单个项目,而包含它的解决方案在源代码控制下(考虑到有些人将他们的本地 IIS 实例映射到不同的驱动器)。当我们编辑一个文件时,它会被标记为被修改,我们可以签入它,恢复我们的更改等(我在 VS2010 中使用 VisualSVN,它为我提供了所有这些方便的选项)。

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

所以 - 我的问题很简单 - 我如何让 TFS 在源代码控制中与 IIS 网站顺利工作,以便我的解决方案资源管理器可以向我显示我在本地拥有的哪些文件是好的或被修改的(ala Subversion)?没有这种“只读”的抱怨?

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

TLDR:我到底如何让 TFS 对 IIS 网站进行源代码控制,在解决方案资源管理器中为我提供漂亮的图标 - 而不必在 TFS 中也有解决方案?

顺便说一下,它是 IIS7。

【问题讨论】:

    标签: iis-7 tfs


    【解决方案1】:

    您可能需要考虑分支和合并策略。这是一个复杂的话题,但那里有很多指导。这可能是一个很好的起点:

    http://branchingguidance.codeplex.com/

    此外,如果您查看 Web 应用程序的属性,我相信有一个选项可以“将服务器设置应用于所有用户(存储在项目文件中)”如果您取消选中我认为您可以让每个开发人员维护他们的自己设置将 IIS 映射到何处而不保存回存储库。

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

    【讨论】:

    • 我可以让项目和解决方案“工作” - 但它的行为并不顺利 - 我的问题是在解决方案资源管理器中双击文件,然后尝试编辑它 - 我得到了“文件是只读的”消息。我没有在文件旁边看到漂亮的图标告诉我它们的状态(修改、签入等)。
    【解决方案2】:

    团队资源管理器使用只读但查看哪些文件已在本地更改。它使用 Workspace 映射允许您将解决方案的一部分放在一个目录中,将解决方案的另一部分放在另一个目录中。

    您可以安装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 映射到正确的文件夹。

    您可以使用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 取消对只读位的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2016-10-02
      • 2011-09-29
      • 2012-09-07
      • 2012-04-04
      相关资源
      最近更新 更多