为啥我的 .tfignore 文件不忽略我的包文件夹

Posted

技术标签:

【中文标题】为啥我的 .tfignore 文件不忽略我的包文件夹【英文标题】:Why doesn't my .tfignore file ignore my packages folder为什么我的 .tfignore 文件不忽略我的包文件夹 【发布时间】:2015-02-03 17:45:09 【问题描述】:

我正在使用 Visual Studio 2013 Pro 和 Team Foundation Server 2013。我有一个 .tfignore 文件,其中包含以下几行:

\packages
\<project name>\Bin
!\<project name>\Bin\*.refresh

第 1 行不工作,但第 2 行和第 3 行正常。上面的项目名称是解决方案中的一个网站。此解决方案中没有其他内容。安装了 nuget 包,它们会在您发布或构建网站时自动下拉。发生这种情况时,将在解决方案中创建此包文件夹。它没有添加到解决方案资源管理器中,当您在文件资源管理器中查看文件管理器时,它与解决方案位于同一文件夹中。

如果您需要任何其他信息,请告诉我。

【问题讨论】:

你想要完成什么?您描述的是预期的行为。您可以通过 NuGet 设置更改包文件夹的设置,而不是 .tfignore。 MrHinsh,我上面的代码显示了你的建议。 Andrew Clear,我正试图阻止将包文件夹检入 TFS。 这个:***.com/questions/23416407/… 是否可以手动创建 .tfignore 文件? 【参考方案1】:

您可以在NuGet.config 中进行控制。

确保键“disableSourceControlIntegration”存在并设置为“true”:

<solution>
    <add key="disableSourceControlIntegration" value="true" />
</solution>

参考资料: http://docs.nuget.org/docs/Reference/Package-Restore http://docs.nuget.org/docs/Reference/NuGet-Config-Settings

【讨论】:

在这个项目中,我没有启用 nuget restore,它只是自动发生的。因此,我也没有 NuGet 文件夹或配置文件。 这行得通。我所做的是,启用包还原,以便它为我创建这个文件。然后我删除了 nuget.exe 和 nuget.targets 文件。我检查了我的更改。在另一台计算机上,我下载了项目,构建了它以便恢复包。砰!它起作用了,它没有看到需要签入的包。在我的计算机上,我只是解开了包文件夹,所以它没有看到需要签入并且再也没有回来。 优秀。你问了这个问题,就像我一直在与客户进行 NuGet 包还原一样,所以解决方案就在我的脑海中。 :)【参考方案2】:

如果您的包已经在 TFS 中,您应该首先在本地“撤消挂起的更改”,从 TFS 源文件中删除它们,然后在 Visual Studio 中签入。这将从服务器中删除软件包,并且不会要求再次签入。

【讨论】:

以上是关于为啥我的 .tfignore 文件不忽略我的包文件夹的主要内容,如果未能解决你的问题,请参考以下文章

.tfignore 不忽略文件

.tfignore Office 临时文件

如何创建 .tfignore 文件?

Visual Studio 2015 TFS .tfignore 文件

为啥 .gitignore 不忽略我的文件?

为啥 flyway 会忽略我的 SQL 迁移文件?