【问题标题】:Keep vss and tfs together installed in the same machine保持 vss 和 tfs 一起安装在同一台机器上
【发布时间】:2019-06-29 13:51:57
【问题描述】:

我有绑定到 Visual SourceSafe 并使用 Visual Studio 2003 完成的旧项目。现在,我最近在同一台机器上安装了 Visual Studio 2017 和 TFS。

现在,当我尝试打开绑定到 Visual SourceSafe 的旧项目时,我收到了一系列错误。屏幕截图下方(出于保密原因像素化)。

似乎当使用旧版 Visual Studio 2003 打开旧项目(绑定到 Visual SourceSafe)时,它会尝试连接到 TFS 服务器(显然它不能)。这是因为我在同一台机器上安装了新的 Visual Studio 2017 和 TFS,似乎它们不能在同一台机器上一起生活。那么如何将 VSS 和 TFS 都安装在同一台机器上呢?有可能吗?

更新: 似乎 VS2003 不允许切换 SCC 提供程序。唯一的办法就是破解注册表来切换。

我发现了一些有趣的东西来解释如何做到这一点并且它似乎有效,问题是一些链接已损坏,它们太旧并且不再可用。

Source safe with Team Foundation Server in VS.2003 Installed TFS Version Control Provider and Now my VS 2003 Projects lost connectivity to VSS 2005? MSSCCI Provider installation error

在上面的链接中,提供了一个解决方案,包括入侵注册表,但他们提供的链接已损坏:

Switch SCC providers

更新 2: 正如 Edward Thomson 在他的回答中所建议的那样,我创建了一个新密钥 'HKCU\Software\Microsoft\VisualStudio\7.1\CurrentSourceControlProvider\' 并使用字符串值进行设置:ProviderRegKey="SOFTWARE\Microsoft\SourceSafe"。下面的截图,但它不工作:

【问题讨论】:

  • 那么你需要有充分的理由不升级,因为这样的遗留产品确实有升级路径。在虚拟化如此普遍的世界里,我也认为没有理由“安装在同一台机器上”。
  • 由于“定期升级软件”对您的组织来说似乎不是一个高优先级的事情,我强烈建议使用 Azure DevOps 进行源代码控制而不是站着建立您自己的本地 TFS 实例。
  • 在 Visual Studio 中,相信有一个选项可以指定源代码控制提供程序。 TFS 的安装可能导致它在您的 VS2003 副本中交换。
  • @Matt 是的,但是这样做时会出现一个仅添加 tfs 服务器的窗口。那里有一个字段来放置服务器名称和端口。如果我将 visual sourcesafe 数据库名称(visual sourcesafe 数据库位置)作为 \\myserver\my\path\to\the\sourcesafe\database 它不起作用,它说无效的 url。如果从“更改源代码控制”也会发生同样的情况”窗口(上图最后一张),我尝试通过“服务器绑定”字段栏绑定服务器。
  • @Matt ...由于某种原因,尝试绑定服务器时,现在只能使用 tfs 服务器。无法绑定到可视源安全服务器位置。似乎 Visual Studio 2003 只检测到 tfs 提供程序,而不是 sourcesafe 提供程序...

标签: tfs visual-studio-2017 visual-sourcesafe visual-studio-2003


【解决方案1】:

MSSCCI 是 Microsoft 源代码控制集成 API,它是 Visual Source Safe 为 Visual Studio 等 IDE 工具提供的原始 API。早期的 Visual Studio 版本(如 2003 年)仅使用 MSSCCI,并期望版本控制提供程序提供 MSSCCI。因此,您只能有 一个 版本控制提供程序使用该协议。

Team Foundation Server 客户端 API 提供 MSSCCI(仅适用于 Team Foundation 版本控制,不适用于 Git)。因此,如果您想使用 Visual Source Safe,则需要将 Visual Studio 配置为与 组库而不是 TFS 组 API 对话。

在较新的 Visual Studio 版本(如 Visual Studio 2008)中,您可以在选项 > 源代码管理 > 插件选择中动态选择您的 MSSCCI 提供程序。将枚举所有 MSSCCI 提供程序,您可以在 Visual Source Safe 和 Team Foundation 版本控制之间进行选择。

如果您使用的是没有此选项的早期版本的 Visual Studio,那么您可以通过直接更新注册表来更改您的 MSSCCI 提供程序。

找到注册表项:

HKCU\Software\Microsoft\VisualStudio\7.1\CurrentSourceControlProvider\ 

并设置:

ProviderRegKey="SOFTWARE\Microsoft\SourceSafe"

使用您已安装的 Visual Studio 版本更新密钥中的7.1(Visual Studio 2003 对应于版本 7.1。)

一旦您做出此更改,您将无法在不改回该设置的情况下使用 Visual Studio 2003 中的 Team Foundation 版本控制。

【讨论】:

  • 在 HKCU\Software\Microsoft\VisualStudio\7.1\ 中没有 CurrentSourceControlProvider 键。我刚刚创建并添加了一个字符串值:ProviderRegKey="SOFTWARE\Microsoft\SourceSafe"。然后我重新启动了计算机,但它无法正常工作,我收到相同的错误消息...我已经用屏幕截图更新了我的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 2021-03-24
相关资源
最近更新 更多