我正在使用TFS SDK(Microsoft.TeamFoundationServer.ExtendedClient)。 我有一个工作项ID列表(workItemsToAssociate),我正在办理登机手续,关联这些工作项:
var workItemStore = tfs.GetService<WorkItemStore>();
var associatedWorkItems = workItemsToAssociate?.Select(workItemId => new WorkItemCheckinInfo(workItemStore.GetWorkItem(workItemId), WorkItemCheckinAction.Associate)).ToArray();
var wip = new WorkspaceCheckInParameters(changes, comment) {
AssociatedWorkItems = associatedWorkItems
}
workspace.CheckIn(wip);
但我遇到了本机dll Microsoft.WITDataStore32.dll(Microsoft.TeamFoundation.WorkItemTracking.Client的一部分)的问题,因为它没有进入我的bin文件夹(我找到的唯一常见解决方案是将它放入手动地)。
上面的代码位于LRT.SourceRepositoryProviders项目中,该项目由应用程序启动的LRT.Console项目引用。构建此本机DLL后,Microsoft.WITDataStore32.dll出现在LRT.SourceRepositoryProviders bin文件夹中,但我必须手动将其放入LRT.Console bin文件夹。
1)有没有办法在不使用WorkItemStore的情况下实现我想要的东西? WorkItemCheckinInfo需要一个WorkItem对象,但我希望我可以将ID列表传递给checkin。
2)如何配置解决方案以便将本机库Microsoft.WITDataStore32.dll正确放置在所有bin文件夹中?
答案 0 :(得分:0)
我们必须使用WorkItemStore来获取工作项信息。
还有另一个示例供您参考How to checkin source code with work item associated using TFS API.
Microsoft.WITDataStore * .dll 是ExtendedClient包的一部分,它们是本机dll,无法在托管项目中引用。您需要手动将dll复制到bin文件夹中以进行运行时解析。
您可以尝试将dll添加到解决方案的启动项目(LRT.SourceRepositoryProviders项目)中。