-1

我一直需要在 TFS 源代码控制中管理一组 SQL 脚本,这些脚本组织为 SSMS 解决方案(.ssmssln 文件)。

我想使用适当的 MSSCCI 提供程序和 Team Explorer 版本以及安装顺序来捕获将 SQL Server 2012 SSMS 与 TFS2010 一起使用的“成功路径”。

我正在使用 SQL Server 产品的“开发者版”,在我的 Win7-64 开发盒上本地运行,并且需要访问由不同组维护的 TFS 2010 服务器。VS2012 和 VS2013 也安装在这个“新”开发盒上,我从它们访问我们的 TFS 2010 服务器没有问题。

一段时间以来,我一直试图从 SQL Server 2012(开发人员版)获取 SSMS 以与我们的 TFS Server 2010 一起使用,但没有成功。我最终确实让 SSMS 2012/TFS 2010 组合在新的开发盒上工作,但留下了“实际工作是什么”的问题,并且没有其他记录在案的解决方案解决这个组合。这个没有:请参阅: SQL Server Scripts 2012 Project into Team Foundation Server 2012,其中涉及 SSMS 2012 和 TFS 2012。

我公司的 TFS 版本往往比我们的 VS 和 SQL 版本落后 1 个主要版本。

其他文章没有解决我的问题的步骤。 https://dba.stackexchange.com/questions/17850/tfs2010-for-ssms-2012;2010 Team Explorer 加上 2012 MSSCCI 提供程序不适用于 SSMS 2012 + TFS 2010 组合。这篇文章,http://www.techtree.co.uk/sql-server/management-studio-ssms/use-team-foundation-server-tfs-as-your-source-control-in-ssms/,虽然很有帮助,除了在其他人的评论中简短地讨论了 Team Explorer 的要求。

我让 SSMS 2008R2 和 TFS2010 组合在使用 MSSCCI 提供程序的旧机器上运行良好。当我搬到一个新盒子,从 SQL Server 2012 安装 SSMS,并打开和编辑我的 SSMS 解决方案(打开 .ssmssln 文件)时,我没有任何运气让集成 TFS 源代码控制工作,尽管尝试了一些不同的 MSSCCI 提供程序版本和 TFS 团队资源管理器版本。

从 SSMS2012 开始,我会看到“连接到 Team Foundation Server”对话框,其中包含一个空的 TFS 服务器下拉列表,然后尝试添加我公司的服务器,尽管输入了相同的值,但不可避免地会出现 404 错误适用于我较旧的 Win7-64 机器上的 SSMS 2008R2/TFS2010。

我相信最终对我有用的组合是:

  1. 为 Visual Studio 2012 安装团队资源管理器 http://www.microsoft.com/en-gb/download/details.aspx?id=30656

  2. 为 Team Foundation Server 2010 安装 MSSCCI 提供程序https://visualstudiogallery.msdn.microsoft.com/bce06506-be38-47a1-9f29-d3937d3d88d6

完成这两件事后,我记得收到打开 Team Explorer 的提示。我相信它是在安装 MSSCCI 2010 提供程序之后或当我在 SSMS 2012 中配置源代码控制时为我启动的。

有趣的是,当 Team Explorer 启动时,它显示了“Visual Studio 2010 徽标”。无论如何,我打开它,然后去添加 TFS 服务器。这一次,添加服务器框中有一个附加条目,显示了我们的 TFS 2010 服务器的 TFS“初始路径”(或“实例名称”)。

我们的 TFS 服务器地址似乎是: http://OurTFSServer:8080/tfs

以前,没有地方可以输入其中的“/tfs”部分。这一次,它出现在添加 TFS 服务器地址对话框中,我相信它是为我预先填充的。

在我看来,缺少的部分是 VS2012 Team Explorer 的安装,它似乎知道“/tfs”初始路径,而 VS2010 Team Explorer 不知道。奇怪的是,启动的 Team Explorer 显示了 VS2010 的标志;请注意,我在安装 VS2012 Team Explorer 然后安装 TFS 2010 MSSCCI Provider 之前明确卸载了 VS2010 Team Explorer。

只是为了让事情变得有趣,MSSCI 提供程序的版本号和日期令人困惑。这是“readme.txt”文件中有关 MSSCCI 版本号的内容。该文件位于:

Program Files (x86)\Microsoft Team Foundation MSSCCI Provider\readme.txt

新系统:

Microsoft Team Foundation Server MSSCCI Provider
v 3.5                          09/20/2013

旧系统:

Microsoft Team Foundation Server MSSCCI Provider
v 4.0                          03/07/2012

因此,在我的 SSMS 2008R2 和 TFS2010 的“旧”开发盒上工作的组合似乎是 Visual Studio 2010 的 Team Explorer 和 Team Foundation Server 2012 的 MSSCCI 提供程序。我还安装了 VS2010、VS2012 和 VS2013那个盒子。

在“新”框中,SSMS 2012 和 TFS2010 的工作组合似乎是 Visual Studio 2012 的团队资源管理器和 Team Foundation Server 2010 的 MSSCCI 提供程序(它具有较旧的版本号但较新的构建/发布日期,比较2012 MSSCCI 提供商)。

我正在寻找的是其他使用这种组合、SSMS 2012 和 TFS 2010 的人,以根据他们从实际使这种组合发挥作用的经验来确认和/或阐明所需内容和顺序的“成功路径”。不是什么“应该”起作用(而且通常不会),而是什么起作用了。

4

1 回答 1

0

随着时间的推移,通过迁移到更适合的技术并更新到所涉及的 Microsoft 技术的已知兼容版本,这个问题在多个方面得到了解决。

1) 我通过使用 Newtonsoft 的 JSON.NET 对数据进行序列化,将大部分 SQL 脚本内容更改为 JSON 文件。现在我不再需要维护这些 SQL 脚本了。相反,我将数据从 JSON 文件加载到对象,并在使用数据的应用程序中实现了序列化/反序列化方法。这比 SQL 效果更好,因为保存的大部分数据都涉及“内容”的表示。

内容表示为文档包,每个包包含多个文档模板,每个模板由多个段落组成。对象模型上下还有数据包、模板和段落的附加属性。因此 JSON 序列化/反序列化更适合这些应用程序。它还启用了更新内容的“单件流”方法。现在我管理 JSON 文件而不是 SQL 脚本,以保留这些内容对象的时间点快照。通常,我将备份所有文档数据包对象的先前版本作为每个内容发布的一部分,并将该备份存储在 TFS 中。

2) 还有其他领域我仍然需要维护 SQL 脚本,例如应用程序中的可重用查询。(出于配置灵活性的原因,我不想使用存储过程)我找到了一种通过资源文件使这些 SQL 查询成为 .NET 程序集的一部分的方法,并且满足了这一需求。我使用的方法类型的一个示例如下:https ://jopinblog.wordpress.com/2007/11/12/embedded-resource-queries-or-how-to-manage-sql-code-in-your-网络项目/

3) 我的公司将我们的 TFS 服务器升级到 TFS 2012,我们开始使用 Visual Studio 2012 和 2013。在使用更新的已知兼容配置时,SSMS 中的问题开始起作用。

于 2015-12-16T20:28:47.960 回答