访问TFS的C#自定义应用程序

本文关键字:自定义 应用程序 TFS 访问 | 更新日期: 2023-09-27 17:48:52

我们已经构建了一个访问TFS的自定义应用程序,供内部使用。我们使用Microsoft库(例如Microsoft.TeamFoundation.dll)。

当此应用程序部署到已经安装了团队资源管理器或VS的电脑上时,一切都很好。当它被部署到没有安装这个的电脑上时,它就会失败。

我们包含了所有必需的DLL,但我们得到的错误是"检测到公共语言运行时和无效程序"。错误发生在适度无害的线路上:

TeamFoundationServer myServer = new TeamFoundationServer(“ourserver.ourdomain.com”);

有趣的是,流行的TFSAdmin工具(当您将所需的DLL放入exe目录时)也会出现同样的错误。

我还注意到,许多其他访问TFS的自定义应用程序(例如。http://hinshelwood.com/tfsstickybuddy.aspx)还需要安装团队资源管理器或VS才能工作。

很明显,DLL是不够的,当这些安装发生时,会发生一些神奇的事情。有人知道它是什么吗?有人知道怎么变魔术吗?

访问TFS的C#自定义应用程序

编写使用TFS对象模型的应用程序的"官方支持"方式是在计算机上安装团队资源管理器。这对于服务目的尤其重要,即确保当VSTS的service pack应用于客户端计算机时,TFS API也会升级。TFS API没有重新分发权限,因此它们不应随应用程序一起提供。

BTW-还要注意,如果您正在编写使用TFS OM的应用程序,请确保仅将其编译为"X86",而不是"任何CPU"。TFS API程序集都标记为X86,但如果应用程序标记为"任何CPU",则在x64计算机上,它将由64位CLR加载,但当需要动态加载TFS程序集时,它将失败。

祝你好运,

马丁。

试试这个列表:

http://geekswithblogs.net/jjulian/archive/2007/06/14/113228.aspx

并尝试将它们放入GAC。这可能是一个安全信任问题-GAC中的程序集被授予更高的CAS级别。