如何移除Microsoft Git Provider?

9
我遇到了一个问题,我将VS2013连接到我的Visual Studio Online账户,并且一直成功地使用TFS源代码控制,但是在我安装Git之后出现了问题。现在,“Microsoft Git Provider”似乎一直覆盖我的源代码控制设置,即使我手动将其改回TFS或无,然后再改回TFS。因此,我想彻底删除它。我尝试卸载所有与Git相关的内容,但它仍然存在。我甚至彻底卸载了VS2013,然后重新安装,但它仍然存在。

@Shahbaz。在这种情况下,它不会起作用。Git提供程序与Visual Studio一起安装。重新安装将毫无作用。 - Ade Miller
嗯!你在TFS工作文件夹映射中是否执行了git init命令来初始化某个目录?你能否在TFS工作文件夹中执行dir .git /s命令,看看是否有返回结果? - Edward Thomson
5个回答

17

我使用procmon工具发现,在切换到Microsoft Git Provider时,Visual Studio会访问此dll。

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll"

我编辑了该dll的权限,使得用户“Everyone”无法访问它,然后VisualStudio停止在启动时切换回“Microsoft Git Provider”。 这样做意味着即使您尝试选择当前源代码控制插件的“Microsoft Git Provider”,它也不会执行任何操作,而只会显示您以前的选择。


2
这是我在使用VS 2015时唯一有效的选项。 - retif
这似乎一开始是有效的,但今天我在打开一个.cs文件时收到了一个错误:Microsoft.VisualStudio.Composition.CompositionFailedException: Expected 1 export(s) with contract name "Microsoft.VisualStudio.CodeSense.Git.Providers.Collaboration.SccTracking.IRepositoryEvents - Wayne Bloss
2
我上面提到的错误也是持久存在的,为了摆脱它,您必须以管理员身份运行 cmd,导航到 Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE,并执行 devenv /updateconfigurationdevenv /clearcache,如 此处所述 - Wayne Bloss
我痛苦地打开了管理员cmd提示符,cd \c:\Program Files (x86),然后执行了del *TeamFoundation.Git.*.dll /S /F /Q。当VS打开时,我会得到一整个错误信息列表,但我能够在VS中使用TFS和在命令行中使用git来处理同一个项目。我还向微软投诉。这很愚蠢。你的情况可能有所不同,如往常一样,请自行承担风险。 - ruffin

12

更新2:

这里有一个扩展,可以在打开 git 解决方案时禁用 MS Git 提供程序: http://visualstudiogallery.msdn.microsoft.com/146b404a-3c91-46ff-932a-fb0f8b826f94

该解决方案似乎不再起作用(正如博客文章中所提到的):

对于那些遇到此文章并希望出于其他原因禁用提供程序的人(例如性能或文件被 ReSharper 读取为只读以进行重构),我运行了这个注册表 hack 来永久删除 MS GIT 源代码控制提供程序:

https://blog.rendle.io/disable-the-git-source-control-add-in-in-vs2013-permanently/

简而言之:

  • 关闭 VS2013 然后删除整个键(或其中一个包含 GitSCCProvider 值的键):

  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\SourceControlProviders\{11b8e6d7-c08b-4385-b321-321078cdd1f8}

  • 在注册表中搜索相同的 GUID 11b8e6d7-c08b-4385-b321-321078cdd1f8 并删除这些值或条目。

编辑:

如果需要使用 TFS Git 存储库以及 Team Explorer 中的相关信息(如生成等),请勿删除 GIT SCC 提供程序,因为那样也会出问题。


我删除了注册表节点,搜索了GUID并将其删除,它可以工作一天左右,但第二天,启动新的vs2013(甚至是现有运行中的vs2013实例)又会恢复其git提供程序。我会再次删除它,看看是否能够更长时间地工作。到目前为止,这对我来说似乎不是一个永久性的解决方案。顺便问一下,在删除之前必须关闭vs2013吗? - liang
1
@liang 在进行注册表更改时,总是关闭 Visual Studio。因为 VS 有在关闭时覆盖所有设置的倾向。 - Wiebe Tijsma
您在博客文章中提供的链接已经失效。这是同一篇博客文章的当前链接:https://blog.rendle.io/disable-the-git-source-control-add-in-in-vs2013-permanently/ - zshift
可以在VS2015中找到:计算机\HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\SourceControlProviders。 - ShloEmi

3

感谢 @Ade-Miller,这正是我需要听到的。

事实证明,我遇到的问题是我正在工作的项目的一个父级文件夹在Git中被设置为存储库:C:\users[me]。不确定是如何发生的。但显然,即使项目本身设置为使用TFS,VS也不喜欢尝试弄清楚你在这种情况下究竟在做什么。从顶层文件夹中删除“.git”文件夹使一切开始表现更好。


如上所述,如果您想使用TFS GIT,请不要删除GIT SCC。然而,这里的答案解决了各种奇怪的错误,这些错误会导致GIT提供程序无法正常启动。删除隐藏的.git文件夹,一切都很顺利! - trevorc

1

以下方法对我有用(来源:http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

注意我添加的两个额外步骤:
1. 在删除前,导出所有注册表键的备份。
2. 删除所有 {11b8e6d7-c08b-4385-b321-321078cdd1f8} 的实例。

  • 确保关闭 Visual Studio。
  • 打开 regedit。
  • 导航到 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0_Config\SourceControlProviders。
  • 删除 11b8e6d7-c08b-4385-b321-321078cdd1f8。
  • 在详细信息窗格中应该会显示 GitProvider。
  • 打开 Visual Studio。

0

只需要再次运行安装程序...

在我的情况下,安装程序是 Microsoft.TeamFoundation.Git.Provider.msi 并选择 移除 选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接