C# TFS SDK-按id将工作项与签入关联

C# TFS SDK-按id将工作项与签入关联,c#,tfs,msbuild,tfs-sdk,C#,Tfs,Msbuild,Tfs Sdk,我正在使用TFS SDK(Microsoft.TeamFoundationServer.ExtendedClient)。 我有一个工作项ID列表(workItemsToAssociate),我正在进行签入,将这些工作项关联起来: var workItemStore = tfs.GetService<WorkItemStore>(); var associatedWorkItems = workItemsToAssociate?.Select(workItemId => new

我正在使用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);
var workItemStore=tfs.GetService();
var associatedWorkItems=workItemsToAssociate?.Select(workItemId=>new WorkItemCheckinInfo(workItemStore.GetWorkItem(workItemId),WorkItemCheckinAction.Associate)).ToArray();
var wip=新工作空间CheckInParameters(更改、注释){
AssociatedWorkItems=AssociatedWorkItems
}
工作区。签入(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) 如何配置解决方案以使本机lib Microsoft.WITDataStore32.dll正确放置在所有bin文件夹中?

我们必须使用WorkItemStore获取工作项信息

还有一个样品供你参考,关于

Microsoft.WITDataStore*.dll是ExtendedClient包的一部分,它们是本机dll,无法在托管项目中引用。您需要手动将dll复制到bin文件夹中,以进行运行时解析

您可以尝试将dll添加到解决方案的启动项目(LRT.SourceRepositoryProviders项目)