如何阻止 VisualStudio“总是”签出解决方案文件?

显然没有任何原因,每次我打开解决方案时,VisualStudio 都会检出 sln 文件。

如果我将其与以前的版本进行比较,则没有任何变化。但是这真的很令人沮丧,因为每个人都检查了解决方案。

我使用的是 VS2008和 TFS 2008,都是 SP2。

有什么办法能阻止这件事发生吗?或者是 VS 的 TFS 源代码控制提供程序的一个特性/bug?

67006 次浏览

在内存中,如果您使用 工具,选择菜单并选择 源头控制、环境面板,那么应该有一些选项用于配置 IDE 与版本控制的接口方式。

我认为其中一些选项控制着 收银台开着的行为。

它是解决方案中加载的一个项目系统的特性/缺陷。尝试删除各种类型的项目(C # 、 VB、 C + + 、网站、 Web 应用程序、单元测试、 Silverlight...) ,直到它消失; 这就是你的答案。

在进行比较之前是否保存文件?这种情况发生在我身上已经有一段时间了,我一直说这些文件之间没有变化,但是过了一段时间,我意识到我之前并没有保存这些文件,而是在与磁盘上的版本进行比较,而不是与内存中的版本进行比较。

每次在 VisualStudio 中打开某个解决方案时,它都会执行一些操作,这些操作可能会导致。Sln 或项目文件更改后,它将要求您签出该文件。当开发人员机器中的文件夹结构发生变化时,或者当它们没有所有文件的相同版本时,就会发生这种情况。也许有人在某个文件夹中添加了一个项目,而另一个开发人员在另一个地方有相同的项目。 我看到的另一种情况是,当我们有一个包含一些 c + + 项目的解决方案时,由于某种原因,其中一个 c + + 项目有一个。绝对路径的 res 文件。一旦这个文件由 VS 自动生成,它就会在开发人员机器之间保持变化。

我建议你打开你的。Sln 文件,并寻找一些绝对路径或相对路径可能不存在于某些开发人员的机器,这取决于他们从你的源代码管理获得什么文件。

允许签出,然后比较两个文件。 如果 VS 加上

<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />

您正在经历一个 VS2008解决方案的 VS 错误,但没有移植到 VS2005

详情请参阅 这个链接:

尽管从一开始就没有预防这个问题,但是如果没有进行任何更改,那么自由使用 TeamFoundation 电动工具“ Undo Unchange”命令将撤消挂起的编辑(令人惊讶)。

为了以防万一,像我一样,你不能让它工作,你发现一个或多个项目也得到检查,我找到了一个更简单的解决方案。记下它不断检查的项目。转到 File-Source Control-Change Source Control,然后取消绑定有问题的项目。单击 OK,SaveAll,然后返回到 ChangeSourceControl 并将项目绑定回解决方案。希望这对其他人也有用

当以下内容位于. sln 文件中时会发生这种情况:

GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection

我发现企业图书馆增加了这些。我删除它,检查在解决方案,关闭,然后重新打开它,没有更多的自动检出。

VisualStudio 解决方案文件正在通过使用微软企业库的一个或多个解决方案项目默认签出-我相信这与企业库配置实用程序有关,该实用程序允许各种应用程序块的组态管理-http://msdn.microsoft.com/en-us/library/ff649479.aspx

看看这个微软的反馈帖子: http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open