有没有人知道是否可以使用他们的TFS API Web服务在TFS的一次旅行中检索工作项及其链接的工作项列表?
目前,我们不得不对第一次通话期间制作的每个工作项进行第二次调用,并且正在引入性能问题.
如果不是这样,有没有办法在不检索它们的情况下查看链接工作项的类型(例如,查看它是一项任务还是问题)?
我正在尝试编写一个代码,在给定TFS存储库中的项目路径和两个修订版本的情况下,将计算内容文件在这两个时刻之间的差异.现在代码可能如下所示:
using (var projectCollection = new TfsTeamProjectCollection(new Uri(repositoryUrl)))
{
projectCollection.EnsureAuthenticated();
var versionControlServer = (VersionControlServer)projectCollection.GetService(typeof(VersionControlServer));
string path = "$/MyProject/path/to/file.xml"
var before = new DiffItemVersionedFile(versionControlServer, path, VersionSpec.ParseSingleSpec(minRevision.ToString(), null));
var after = new DiffItemVersionedFile(versionControlServer, path, VersionSpec.ParseSingleSpec(maxRevision.ToString(), null));
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
var options = new DiffOptions();
options.Flags = DiffOptionFlags.EnablePreambleHandling;
options.OutputType = DiffOutputType.Unified;
options.TargetEncoding = Encoding.UTF8;
options.SourceEncoding = Encoding.UTF8;
options.StreamWriter = writer;
Difference.DiffFiles(versionControlServer, before, after, options, path, true);
writer.Flush();
var reader = new StreamReader(stream);
var …Run Code Online (Sandbox Code Playgroud) 我用下面的代码分叉了一个项目:
var pc = ParentSection.GetService<IPendingChangesExt>();
var model = pc.GetType().GetField("m_workItemsSection", BindingFlags.NonPublic | BindingFlags.Instance);
var t = model.FieldType;
var mm = model.GetValue(pc);
var m = t.GetMethod("AddWorkItemById", BindingFlags.NonPublic | BindingFlags.Instance);
m.Invoke(mm, new object[] { selectedWorkItemId });
Run Code Online (Sandbox Code Playgroud)
这会将工作项的ID添加到当前挂起的更改中.
现在,我想链接在"Associate"或"Resolve"(关联和解析)之间选择的工作项,具体取决于用户点击插件界面的按钮,如下所示:

如果用户单击"关联并解决",则应在签入时将工作项关联并标记为已解决.
如果用户单击"仅关联",则工作项必须仅链接到变更集,但不能解决.
欢迎任何帮助
tfs tfs-sdk visual-studio visual-studio-2012 visual-studio-2015
我正在尝试编写连接到TFS的ac#应用程序并检索工作项信息.不幸的是,似乎所有使用TFS SDK的示例都使用当前用户的默认凭据(即我的域登录信息).我找到的最接近的信息是使用TeamFoundationServer (String, ICredentials)构造函数,但是我找不到与ICredentials接口接口的合适类的任何信息(特别是因为它似乎没有使用System.Net ICredentials而是TeamFoundationServer特定的ICredentials).
有没有人对使用特定用户名/密码/域名组合登录TFS有任何见解?
使用TFS API,我可以创建一个TFS项,没问题.
什么是最好的方式让我知道新创建的项目的项目ID是什么?
谢谢,
乔治
try
{
// Authenticate User Account
NetworkCredential account = new NetworkCredential(USERNAME, PASSWORD, DOMAIN);
// for user stories from the team project where the user story will be created.
Uri collectionUri = new Uri(tfsURI);
//TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri);
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(collectionUri, account);
WorkItemStore workItemStore = tpc.GetService<WorkItemStore>();
Project teamProject = workItemStore.Projects[info.TFSProjectName];
WorkItemType workItemType = teamProject.WorkItemTypes[info.ItemType];
// Create the work item.
WorkItem userStory = new WorkItem(workItemType);
userStory.Title = info.Title;
userStory.Description = info.Description;
userStory.AreaPath = info.AreaPath; …Run Code Online (Sandbox Code Playgroud) 我有一个TFS项目的以下WIQL查询:
string query = "SELECT * FROM Issue WHERE [System.TeamProject] = @Project "+
"AND [Assigned To] IN (@AssignedTo)";
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("Project","test");
parameters.Add("AssignedTo","'chris','tfsuser'");
WorkItemStore.Query(query, parameters);
Run Code Online (Sandbox Code Playgroud)
这是通过.NET TFS API运行的.
我的问题是AssignedTo参数.这有什么意义?我已经尝试过它string[],List<string>以及上面有和没有引号.每一个似乎都不起作用.
我正在使用Microsoft.TeamFoundation.VersionControl.Client命名空间中的类以编程方式使用TFS .我的目标是将本地文件夹中的文件签入到源代码管理中.某些文件可能已经存在于SC中,应该是已编辑的,有些是新的,应该添加,有些文件存在于SC中并且没有更改,所以我不需要对它们做任何事情.
我的问题是,我无法弄清楚如何检查源控件中是否已存在文件,因此我无法在我的代码中决定是否应该添加或编辑它.没有任何Workspace方法似乎做我需要的.
我的代码:
foreach (string file in fileList)
{
workspace.PendEdit(file);
workspace.PendAdd(file);
}
Run Code Online (Sandbox Code Playgroud)
它完成了这项工作,但看起来很愚蠢,感觉很慢.这样做的正确方法是什么?
有没有办法使用TFS 2012 API以编程方式访问WorkItem的"看板列"?
使用Scrum 2.2模板,每当在Board上的Kanban列之间拖动工作项时,Bug或Product Backlog Item的历史记录都会将"[MyProject\MyTeam]看板列"显示为已更改的字段,但具体情况下无法访问该字段通过TFS API检索工作项.
在接口上WorkItemChangedEvent实现ProcessEvent方法时,它还显示为对象中的已更改字段Microsoft.TeamFoundation.Framework.Server.ISubscriber.
解决方法:
一位同事发现了一篇关于创建一个只读自定义字段的博客文章,以保留看板列的价值,利用它WorkItemChangedEvent来捕获最新值.然后可以在此列上查询.这种方法的一个问题是只能跟踪单个团队的看板列.
更新: 根据这篇博文,看板栏不是一个字段,而是一个"WIT扩展".这可能有助于找到答案.
我正在尝试使用TFS SDK连接到TFS 2010,但无法获得VersionControlServer服务.
var servers = RegisteredTfsConnections.GetConfigurationServers(); // ok
Run Code Online (Sandbox Code Playgroud)
然后
var tfs = new TfsConfigurationServer(servers.First().Uri, CredentialCache.DefaultNetworkCredentials);
// or
var tfs = new TfsConfigurationServer(servers.First());
Run Code Online (Sandbox Code Playgroud)
两者总是返回null:
var vc = (VersionControlServer)tfs.GetService<VersionControlServer>(); // null!
Run Code Online (Sandbox Code Playgroud)
我该怎么办?