如何从TFS源代码pipe理中排除特定的文件?

我们有多个configuration文件(app.DEV.config,app.TEST.config等)和一个预生成事件,将正确的configuration文件复制到app.config。 显然configuration特定的文件是在源代码pipe理—但目前也是App.Config,这不应该是。

我怎样才能将这个文件标记为从源代码控制中排除,但显然不是来自于这个项目。

我正在使用VS 2005和2005团队资源pipe理器。

MS Power Tools中有一个签入策略(禁止模式策略),可以让您根据正则expression式来显示文件名。 请参阅: Microsoft Team Foundation Server电源工具

虽然签入策略并非完全万无一失,但它们是TFS最为强大的用户定义规则,例如您正在查找的内容。

(正如其他人所说的那样,你也可以隐藏一个文件或文件夹,这意味着它保持在源代码pipe理中,并且对团队中的其他人都是可见的,但是在你决定拆除它之前,它不会被复制到你的PC上;或者你可以删除这个文件,这意味着当它们得到最新的时候它会从每个人的PC中删除 – 但是这些选项都不能阻止这些文件被添加到源代码控制中)

在TFS2012中很容易,创build一个.tfignore文件

http://msdn.microsoft.com/en-us/library/tfs/ms245454%28v=vs.110%29.aspx#tfignore

###################################### # Ignore .cpp files in the ProjA sub-folder and all its subfolders ProjA\*.cpp # # Ignore .txt files in this folder \*.txt # # Ignore .xml files in this folder and all its sub-folders *.xml # # Ignore all files in the Temp sub-folder \Temp # # Do not ignore .dll files in this folder nor in any of its sub-folders !*.dll # EDIT https://msdn.microsoft.com/en-us/library/ms245454(v=vs.110).aspx#tfignore # A filespec is recursive unless prefixed by the \ character. 

在解决scheme资源pipe理器中selectApp.config文件,然后从源代码pipe理中select文件 – >源代码pipe理 – >排除App.config。

有一个很难find的选项:

1.在解决scheme资源pipe理器中select文件或多个文件

2.转到文件 – >源代码pipe理 – >高级

排除的路径

在这里

这是排除

请记住:如果您在解决scheme资源pipe理器中右键单击某个文件,只会发现“最重要的选项”并非全部:)

如果你想要的只是在项目中有一个文件,但没有在TFS的源代码控制下,只要进入SourceControl,删除所述的文件,并撤消你的项目文件的签出(它会试图从项目中删除文件好)。 然后检查您所删除的文件是否被删除。 在解决scheme资源pipe理器中,您应该看到您排除的文件旁边没有源代码控制图标。 项目文件应该在那里列出一个文件,但该文件现在不应再受源代码pipe理。

请记住,任何其他人现在将看到项目中最近一次丢失的文件。

TFS允许你隐藏在文件夹/文件级别。 当有东西被遮盖时,TFS不会尝试同步它(很像svn:ignore)。

设置工作区时,隐藏任何你想让TFS忽略的东西。 更详细的方法在这里 。

这对我工作:

一种方法是将新项目或现有项目添加到项目中(例如右键单击项目,添加现有项目或从Windows资源pipe理器拖放到解决scheme资源pipe理器中),让TFS处理文件或文件夹,然后撤消挂起项目的变化。 TFS会将它们取消标记为有待添加更改,并且这些文件将安静地放置在项目中,并停留在TFS之外。

来源:=“>我如何从TFS源代码pipe理中排除特定的文件

Visual Studio 2013(和2012)

该function可通过select文件并转到:

 File > Source Control > Advanced > Exclude ... from Source Control 

这个问题刚才被问到,但它与我遇到的同类问题有关。

问题:

  • 我们想检查我们的代码。
  • 然后,我们要build立我们的项目。
    • 在我们的构build过程中,我们依赖于构build事件来移动文件,所以我们有适当的文件来完成构build过程。
  • 当我们的生成事件尝试复制文件时,我们得到访问被拒绝的错误。

原因:

  • Team Foundation Server Visual Studio插件将我们的文件中的只读属性更改为READONLY TRUE。

构build事件示例:

  • 复制“$(TargetDir)SomeFile.ext”“$(ProjectDir)”

上面,我们只需要将目标构buildpath(bin \ debug或bin \ release文件夹)中的文件移动到我们的项目文件夹。 在我的情况下,这是我可以在我的安装程序中包含项目构build的文件。 我的安装程序没有把它们作为项目输出的一部分。

解决方法:(当我明白这一点时,几乎将我的自己踢在了脸上)

新build事件:

  • attrib -R“$(ProjectDir)SomeFile.ext”
  • 复制“$(TargetDir)SomeFile.ext”“$(ProjectDir)”
  • attrib + R“$(ProjectDir)SomeFile.ext”

Build Events对我们都很好玩吗? 上面我只是做了2件事情,我删除了只读属性,现在这些文件不是只读的。 复制我的文件,因为我最初想要的。 然后replace只读属性(我猜是可选的),以保持Visual Studio和Team Foundations的快乐。

是的…我仍然在这个脸上踢自己。

我有一个类似的问题,我的App.config包含明智的数据(如用户名),这个数据不应该与TFS同步。

本文将密码和其他敏感数据部署到ASP.NET和Azure App Service的最佳实践描述了一种防止此问题的好方法:

使用“appSettings”元素的“文件”属性来引用未添加到源代码pipe理的configuration文件

如果您的版本比TFS2012旧,因此无法创build.tfignore文件或使用File > Source Control > Advanced > Exclude …选项,您可以尝试以下操作:

  • 在Windows资源pipe理器中制作目标文件的副本。
  • 撤消团队资源pipe理器/ Visual Studio中的目标文件上的挂起更改(如果有)。
  • 在Windows资源pipe理器中删除目标文件。
  • 将目标文件的副本移动到已删除的目标文件的位置,并将其重命名为与已删除的目标文件具有相同的名称。

现在TFS似乎忽略了目标文件中的更改。 如果您需要再次编辑该文件,请不要使用Visual Studio,因为TFS会将该文件重新放入包含待定更改的文件列表中。