为啥在我将文件添加到项目时,Visual Studio 会检出 .vspscc 文件?

Posted

技术标签:

【中文标题】为啥在我将文件添加到项目时,Visual Studio 会检出 .vspscc 文件?【英文标题】:Why does Visual Studio check out the .vspscc file when I add a file to a project?为什么在我将文件添加到项目时,Visual Studio 会检出 .vspscc 文件? 【发布时间】:2011-03-08 10:30:28 【问题描述】:

如果我将新文件添加到 TFS 源代码控制下的项目,它将检查项目文件和该项目文件的相应 .vspscc 文件。

项目文件本身会发生变化(以包含新文件),但 .vspscc 文件根本没有变化。为什么要麻烦检查一下?有没有办法禁止它被检出,如果有,我应该吗?

【问题讨论】:

这是一个非常好的问题。将项目添加到源代码管理时,它似乎会创建和版本 .vspscc 文件。但是,如果您尝试将项目导出并重新添加到另一个源代码管理,源代码管理向导会将这些文件放到忽略列表中。遗憾的是,这个问题没有得到明确的回答,yes because...no because... 答案。 【参考方案1】:

它被签出是因为在某些情况下它将被修改..因此他们将其签出作为默认问题。我不会担心它..它不会伤害任何东西,如果你禁用它,它可能会在未来以一种奇怪的方式严重咬你。

【讨论】:

谢谢。只是出于好奇,知道这些特定条件是什么吗? 没有线索。我刚刚在蓝月亮中看到它以不同的尺寸签入,所以我认为它偶尔会被更改。当我星期一上班时,我可以看看我是否能说出有什么不同 我只是查看了一个有 9 个月历史的 vspscc 文件的版本历史记录,并且自从第一次添加以来,有几十个签入没有任何变化。 我很可能是错的,因为我无法验证(因为我在家不工作),但我的大脑告诉我我已经看到它的大小变化了。 (也可能会产生幻觉:-S)无论如何,每次都检查它不会有任何伤害 这是一个答案:Team Foundation 使用这些来存储已从源代码管理中排除的文件列表。我们利用 Visual Studio 中的一些现有 SCC 集成层来集成 Team Foundation,这些文件就是其中之一。 social.msdn.microsoft.com/Forums/en/tfsgeneral/thread/…【参考方案2】:

根据 Ben Ryan 的this post:

Team Foundation 使用这些来存储已从源代码管理中排除的文件列表。我们利用 Visual Studio 中的一些现有 SCC 集成层来集成 Team Foundation,这些文件就是其中之一。我必须检查将这些 SCC 设置分解为单独文件的逻辑,而不是将它们放在解决方案和项目文件的 SCC 部分中。

【讨论】:

【参考方案3】:

此文件是过去 VSS/TFS 实现的保留,如 Paulo Santos 发布的。

在解决方案层面,我发现这些文件没有任何功能用途。在使用 TFS 的 10 年中,我从未见过该文件被更改过。您可以删除这些 .VSSCC 文件,就像我通常为我的闭源解决方案所做的那样。

但是如果您删除解决方案级别的 .vsscc 文件,您将在第一次打开解决方案文件时收到非破坏性错误消息...仅在创建新分支后。所有后续打开的解决方案都不会再次显示错误消息。

我的 TFS 设置标准将解决方案文件单独放在根文件夹中,所有项目都在子文件夹下。由于这些 .vsscc 文件使我的根目录中的文件数量增加了一倍,因此我总是删除它们。

在项目级别,我保留了这些文件,因为我的团队从不直接打开项目文件,只打开解决方案 .SLN 文件。

对于我的团队,我更喜欢程序员易于打开解决方案而不是一次性错误消息。

【讨论】:

不幸的是,即使删除文件,Visual Studio(甚至 2015)也会重新生成它们。

以上是关于为啥在我将文件添加到项目时,Visual Studio 会检出 .vspscc 文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我添加到我的 xcode 项目的音频文件在模拟器中可用,但在我在 iPhone 上部署应用程序时不可用

将现有 xaml 文件添加到 Visual Studio 2012

Visual Studio 不跟踪更改,或者在我编辑文件时从源代码管理中签出文件

Visual Studio 代码编辑器中的问题。为啥我保存文件时会关闭它们?

链接到 Visual Studio 动态库

为啥我的项目没有从 Visual Studio 上传到 github?