1

我正在开发一个需要与 Team Foundation Server 交互的 WPF 应用程序,主要是检索一些工作项。为此,我使用了随 Visual Studio Team Explorer 2012 提供的 TeamFoundation Client 程序集 v11。该应用程序适用于已安装 Visual Studio Team Explorer 2012 的用户。但是,只有 Visual Studio Team Explorer 2010 的用户会遇到异常说“TeamFoundation Client v11”丢失。当我在我的应用程序中将 TeamFoundation 客户端程序集更改为 v10 时。现在,只有 Visual Studio Team Explorer 2012 的用户会收到异常提示“TeamFoundation Client v10”缺失。

如果用户必须拥有特定版本的 Visual Studio Team Studio 并且不同版本的 TeamFoundation 客户端程序集彼此不兼容,请告诉我?还是我犯了一个错误?有什么解决办法吗?

4

1 回答 1

3

当您使用 TFS 客户端对象模型时,该版本的对象模型必须安装在客户端计算机上。Visual Studio 2012 安装并使用 2012 版本的对象模型 (11.0.0.0),2010 使用 2010 版本。

如果您希望您的应用程序与 Visual Studio 2010 和 2012 兼容,那么最好的选择是使用 TFS 2010 对象模型。您可以单独下载和安装对象模型,这样您就不需要并排安装 Team Explorer 或 Visual Studio。

安装 TFS 客户端对象模型 2010,然后在 Visual Studio 2012 旁边安装Visual Studio 2010 前向兼容性补丁应该允许您的 2012 用户以及 2010 用户进行连接。

您还可以在 VS2010 旁边安装TFS 客户端对象模型 2012,但由于这需要安装 .NET 4.5,因此您将无法通过这种方式为使用 Windows XP 的客户端提供服务。

最后一种选择是构建应用程序/库的两个版本,一个针对 2010 对象模型,一个针对 2012 版本。您可以让安装程序决定安装哪个版本。

注意:最后一个场景可以通过抽象使用分支来扩展,并在运行时加载正确版本的 TFS 特定二进制文件。使用接口将这一切抽象出来。

于 2013-01-16T10:08:50.120 回答