小编典典

如何忽略 TFS 中的文件/目录以避免它们进入中央源存储库?

all

是否可以在 TFS 源代码控制中基于每个项目设置要忽略的文件/文件夹?

例如,我有一个网站,其中包含我不想进入源代码控制的资产文件夹。这些资产由单独的系统维护。另外,我不想将几 GB
的资产放入源代码控制中,但我需要在我的开发机器上提供几个示例,但我也不想检查这些。

如果我在绑定到源代码控制的同时在此网站上工作并刷新树,这些文件将自动再次添加

我想防止这种情况发生。


阅读 69

收藏
2022-05-13

共1个答案

小编典典

对于 VS2015 和 VS2017

适用于 TFS(本地)或 VSO(Visual Studio Online - Azure 托管的产品)

NuGet 文档提供了有关如何完成此操作的说明,我刚刚成功地按照它们在 Visual Studio 2015 和 Visual Studio 2017 中针对
VSTS(Azure 托管的 TFS)进行了操作。 截至2016 年 11 月 2018年 8 月,所有内容均已全面更新。

我建议您按照 NuGet 的说明进行操作,但只是回顾一下我所做的事情:

  1. 确保您的packages文件夹未提交到 TFS。如果是的话,把它从那里弄出来。
  2. 除非另有说明,否则我们在下面创建的所有其他内容都将放入您的文件所在的同一文件夹中.sln(NuGet 的说明对此并不完全清楚)。
  3. 创建一个.nuget文件夹。您可以使用 Windows 资源管理器为其命名.nuget.以成功另存为.nuget(它会自动删除最后一个句点)但直接尝试命名它.nuget可能不起作用(您可能会收到错误或可能会更改名称,具体取决于您的 Windows 版本)。或者将目录命名为 nuget,并在命令行提示符下打开父目录。类型。仁 nuget .nuget
  4. 在该文件夹中,创建一个NuGet.config文件并添加以下内容并保存:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. 返回您.sln的文件夹并创建一个新的文本文件并命名.tfignore(如果使用 Windows 资源管理器,请使用与上述相同的技巧并命名.tfignore.
  2. 将以下内容放入该文件中:

.tfignore:

# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
  1. 保存所有这些,将其提交到 TFS,然后关闭并重新打开 Visual Studio,团队资源管理器不应再将包文件夹标识为待签入。
  2. 通过 Windows 资源管理器将.tfignore文件和.nuget文件夹复制/粘贴到我所有的各种解决方案中并提交它们,我不再有packages文件夹试图潜入我的源代码控制仓库!

进一步定制

虽然不是我的,但我发现sirkirby的这个.tfignore模板很方便。我的答案中的示例涵盖了
Nugetpackages文件夹,但此模板包含其他一些内容,并提供了其他示例,如果您希望进一步自定义这些示例,这些示例可能很有用。

2022-05-13