显然没有任何理由,每次我打开我的解决方案时,Visual Studio 都会检查 sln 文件。
如果我将它与以前的版本进行比较,则没有任何变化。但这真的很令人沮丧,因为每个人都检查了解决方案。
我正在使用 VS 2008 和 TFS 2008,都是 SP2。
关于如何阻止这件事发生的任何想法?还是 VS 的 TFS 源代码控制提供程序的功能/错误?
当 .sln 文件中有以下内容时,会发生这种情况:
GlobalSection(ExtensibilityGlobals) = postSolution
MyGlobalProperty = AnyValue
EndGlobalSection
我发现企业库添加了其中之一。我删除它,签入解决方案,关闭然后重新打开它,不再自动签出。
从内存中,如果您使用“工具”、“选项”菜单并选择“源代码管理”、“环境”面板,则应该有一些选项可用于配置 IDE 与版本控制的接口方式。
我认为其中一些选项控制开放行为的结帐。
以防万一,像我一样,你无法让它工作并且你发现一个或多个项目也被检查出来,我找到了一个更简单的解决方案。记下它不断检查的项目。转到文件 - 源代码管理 - 更改源代码管理,然后取消绑定有问题的项目。单击确定,全部保存,然后返回更改源代码控制并将项目绑定回解决方案。希望这对其他人有用
尽管一开始并没有防止问题发生,但如果没有进行任何更改,随意使用 Team Foundation Power Tools“撤消未更改”命令将(令人惊讶地)撤消挂起的编辑。
允许签出,然后比较两个文件。如果 VS 添加了类似的东西
<Service Include="{B4F97281-0DBD-4835-9ED8-7DFB966E87FF}" />
您在 VS2008 中使用解决方案遇到 VS 错误,但未移植到 VS2005
查看 this link 了解更多详情:
Visual Studio 解决方案文件正在使用 Microsoft 企业库通过一个或多个解决方案项目以静默方式签出 - 我相信这与允许对各种应用程序块进行配置管理的企业库配置实用程序有关 - { 1}
请参阅此 Microsoft 反馈帖子:http://connect.microsoft.com/VisualStudio/feedback/details/737184/globalsection-extensibilityglobals-postsolution-checks-out-sln-file-on-open
这是解决方案中加载的项目系统之一的功能/错误。尝试删除各种类型的项目(C#、VB、C++、网站、Web 应用程序、单元测试、silverlight...),直到它消失;这就是你的答案。
您是否在进行比较之前保存文件?前段时间发生在我身上,一直说文件之间没有变化,但过了一段时间我意识到我之前没有保存文件,它是在与磁盘中的版本进行比较,而不是与内存中的版本进行比较。
每次您在 Visual Studio 中打开某个解决方案时,它都会执行一些操作,这些操作可能会导致您的 .sln 或项目文件发生更改,然后它会要求您签出该文件。当开发人员机器中的文件夹结构发生更改时,或者当他们没有所有文件的相同版本时,就会发生这种情况。也许有人在某个文件夹中添加了一个项目,而另一个开发人员在另一个地方有相同的项目。我看到发生这种情况的另一种情况是,当我们有一些 c++ 项目的解决方案时,出于某种原因,其中一个 c++ 项目有一个带有绝对路径的 .res 文件。一旦这个文件由 VS 自动生成,它就会保持从开发者机器到开发者机器的变化。
我建议您打开您的 .sln 文件并查找一些绝对路径或通过某些开发人员机器中可能不存在的相对路径,具体取决于他们从您的源代码管理中获取的文件。