Visual Studio 2015 默认为 P4VS,即使解决方案由 git 控制

Visual Studio 2015 is default to P4VS even though solution is controlled by git

大约 2 年前,我们公司从 Perforce 切换到 Git。从那以后,我一直在 Visual Studio 2015 年使用 Git 插件,没有任何问题。就在上个月左右,当我开始 Visual Studio 任何项目时,我收到消息

The active solution or project is controlled by a different source control plug-in than the one you have selected. If you change the source control plug-in, the active solution or project will be closed.

如果我说是,我的解决方案就关闭了。如果我随后查看工具/选项/源代码管理,插件设置为 P4VS。

如果我说不,我的解决方案是开放的,源代码控制是Git。

我尝试从头开始创建一个 Visual Studio 项目,由 Git 控制,我得到了相同的结果。这是一个简单的空项目。我已经检查了 .sln 和 .csproj 文件,两个文件中都没有源代码控制密钥。

如果我只是在没有项目的情况下打开 Visual Studio,我的源代码管理插件设置为 Git。

似乎 Visual Studio 已经决定我的项目全部由 Perforce 控制,并且正在考虑 Git 进行更改,但我无法弄清楚它是如何决定的。显然,我可以单击 "No" 并继续,但如果可以的话我想解决这个问题。

这看起来类似于问题描述 Migrating from AnkhSVN to VisualSVN(AnkhSVN 和 VisualSVN 是 Visual Studio 的插件,添加了对 SVN 的支持,但同样适用于其他源代码管理插件).如果是这种情况,您可以尝试以下操作:

  • 从您的解决方案中删除解决方案用户选项 (.suo) 文件并重新启动 Visual Studio,
  • 用文本编辑器打开你的 VS 项目文件,删除以下行;重新启动 Visual Studio 并重新打开您的解决方案:
<SccProjectName>XXXX</SccProjectName>
<SccLocalPath>XXXX</SccLocalPath>
<SccAuxPath>XXXX</SccAuxPath>
<SccProvider>XXXX</SccProvider>

由于我们不再使用 perforce,我最终进入了工具 -> 扩展并禁用了 P4VS (Perforce)。这似乎已经解决了问题。

附带的好处是,我在尝试从 VS 中的项目中删除文件时遇到了问题,没有收到错误消息,但文件不会被删除。当我禁用 P4VS 时,这个问题似乎也消失了。

注意:问题不是由 .suo 文件或 .proj 文件中的任何内容引起的,正如我通过删除 .suo 并创建一个新的空项目并检查 .proj 所确定的那样。