如何更新自定义过程模板以访问 TFS 2015 RTM 中多个团队项目中的新功能?

How to update a customized process template to access new features in multiple Team Projects in TFS 2015 RTM?

我在 Microsoft 官方页面上阅读了这些链接 更新自定义流程模板以访问新功能 :

当我尝试在调试中执行 Features4tfs.2015 时出现此异常 System.NotSupportedException: Specified method is not supported. at Microsoft.TeamFoundation.Integration.Server.CommonStructureService.Microsoft.Tea‌​‌​mFoundation.Framework.Server.ITeamFoundationService.ServiceStart(TeamFoundation‌​Re‌​questContext systemRequestContext)

在这次通话中

ProjectFeatureProvisioningService.GetFeatures(...)

有什么想法吗?

v14好像住在这里:

public class ProjectFeatureProvisioningService : ITeamFoundationService, IProjectFeatureProvisioning

Name: Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.ProjectFeatureProvisioningService 
Assembly: Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common, Version=14.0.0.0 

反射器在这些情况下是你的朋友。只需将 TFS 服务器目录中的所有程序集加载到 Reflector 中,然后使用搜索功能:

然后在此处找到程序集 "Microsoft.TeamFoundation.Server.WebAccess.WorkItemTracking.Common.dll" 将是小菜一碟:

  • C:\Program Files\Microsoft Team Foundation Server 14.0\Application Tier\Web Services\bin
  • C:\Program Files\Microsoft Team Foundation Server 14.0\Application Tier\TFSJobAgent\Plugins

这些内部 类 可以在程序集之间移动而无需通知。这就是为什么它们是内部的 ;).

完全披露:我收到了 Reflector Pro 的副本,因为我的博客和对该产品的热爱。 IlSpy、justDecompile 或 dotPeek 等其他产品可能提供类似的功能。

这里是微软提出的解决TFS 2015 RTM上features4tfs问题的方案:

插入这一行

deploymentHostProperties.PlugInDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Microsoft Team Foundation Server 14.0\Application Tier\TFSJobAgent\Plugins");

就在这一行之后(第 68 行)

TeamFoundationServiceHostProperties deploymentHostProperties = new TeamFoundationServiceHostProperties();

之后它在 TFS 2015 RTM 上完美运行。