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

问题描述 投票:0回答:9

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

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

我正在使用 VS 2008 和 TFS 2008,都是 SP2。

关于如何阻止这件事发生的任何想法?或者是 VS 的 TFS 源代码控制提供程序的功能/错误?

visual-studio-2008 tfs
9个回答
122
投票

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

GlobalSection(ExtensibilityGlobals) = postSolution
    MyGlobalProperty = AnyValue
EndGlobalSection

我发现Enterprise Library添加了其中一个。我删除它,签入解决方案,关闭然后重新打开它,不再自动签出。


6
投票

根据记忆,如果您使用工具、选项菜单并选择源代码管理、环境面板,应该有一些选项用于配置IDE与版本控制的接口方式。

我认为其中一些选项控制着 checkout on open 行为。


6
投票

以防万一,像我一样,你无法让它工作,你发现一个或多个项目也被签出,我找到了一个更简单的解决方案。记下它不断检查的项目。转到文件 - 源代码管理 - 更改源代码管理,然后取消绑定有问题的项目。单击“确定”、“全部保存”,然后返回“更改源代码管理”并将项目绑定回解决方案。希望这对其他人有用


3
投票

虽然一开始并没有阻止这个问题,但自由使用 Team Foundation Power Tools“Undo Unchanged”命令将(令人惊讶的是)撤消未完成的编辑,如果没有进行任何更改。


3
投票

允许签出然后比较两个文件。 如果 VS 添加类似的东西

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

你在 VS2008 中遇到了一个 VS 错误,但没有移植到 VS2005

查看此链接了解更多详情:


2
投票

Visual Studio 解决方案文件正在通过使用 Microsoft 企业库的一个或多个解决方案项目静默签出 - 我相信这与企业库配置实用程序有关,它允许对各种应用程序块进行配置管理 - http://msdn.microsoft.com/en-us/library/ff649479.aspx

请参阅此 Microsoft 反馈帖子:http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open


1
投票

这是在解决方案中加载的项目系统之一的功能/错误。尝试删除各种类型的项目(C#、VB、C++、网站、Web 应用程序、单元测试、silverlight...)直到它消失;这就是你的答案。


0
投票

你在做比较之前保存你的文件吗?前段时间发生在我身上,一直说文件之间没有变化,但过了一段时间我意识到我之前没有保存文件,而是与磁盘中的版本进行比较,而不是内存中的版本。

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

我建议您打开 .sln 文件并查找一些绝对路径或相对路径,这些路径在某些开发人员机器中可能不存在,具体取决于他们从您的源代码管理中获取的文件。


0
投票

在 Visual Studio 2019 / 2022 中更改以下设置

如本答案所示

https://stackoverflow.com/a/75814658/1165173

© www.soinside.com 2019 - 2024. All rights reserved.