visual-studio-2010 - Visual Studio 2010 无法识别正确的源代码管理插件

标签 visual-studio-2010 version-control

我从事使用不同源代码控制提供程序的不同项目。颠覆、Git、TFS 等...

为了在 Subversion 上工作,我安装了 AnkhSVN。
为了在 Git 上工作,我安装了 Git Source Control Provider
要在 TFS 上工作,……嗯,你明白了。

源代码控制信息保存为解决方案文件的一部分。

然而,当我打开一个新项目时,Visual Studio 总是使用最后选择的源代码控制提供程序。它似乎没有从解决方案文件中提取出来。我总是必须打开“工具”>“选项”对话框来切换提供者(这需要永远!)

这是我做错了什么吗?我希望 Visual Studio 能够根据开放的解决方案更改提供程序。

如果这是 Visual Studio 根本不做的事情,是否有宏或扩展可以自动解决这个问题?

我不敢相信这个问题以前没有被问过,但我在 StackOverflow 的“可能已经有你答案的问题”列表中没有看到任何明显的欺骗。可悲的是,这似乎指向了“这只是我”的答案。

最佳答案

IMO 的每个解决方案提供商绑定(bind)是错误的,因为该解决方案可以驻留在多个源代码控制系统中。诀窍是在 VS 扩展的预加载解决方案事件中加载正确的源代码控制提供程序检查保留目录。核心代码如下:

IVsRegisterScciProvider vsRegisterScciProvider = GetService<IVsRegisterScciProvider>();
vsRegisterScciProvider.RegisterSourceControlProvider(sccProviderGuid);

这种扩展的完整代码是 here .我可能会在一些测试后不久发布它,因为它非常简单,即使它需要我进行大量研究。我找不到任何类似的东西,这对我来说很奇怪,因为它应该是这样做的明显方式。关于 RegisterSourceControlProvider 的文档也极具误导性,所以这可能是原因。

关于visual-studio-2010 - Visual Studio 2010 无法识别正确的源代码管理插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10785848/

相关文章:

version-control - 检索文件的旧版本而不更改工作副本父对象

git - 如何使用 LDAP 用户作为提交者/作者名称提交到 GIT 存储库?

c# - 在 Visual C# Express 2010 中编译时不包含代码更改

c++ - 有没有办法在 Visual Studio 中捕获标准错误和标准输出?

c# - 如何从我的程序启动一个进程并让它由 visual studio 控制?

svn - 在 SVN 中存储二进制文件是否可以接受/很好?

version-control - 我可以将 `.hg` 与工作目录分开吗?

c# - 为什么这个字典在 VB.NET 和 C# 之间的调试中显示不同?

c - 运行时检查失败 #2 - 变量 'name' 周围的堆栈已损坏

svn - 如何 "unversion"svn 和/或 git 中的文件