标签: tfs-sdk

使用TFS API在单个查询中检索工作项及其链接的工作项

有没有人知道是否可以使用他们的TFS API Web服务在TFS的一次旅行中检索工作项及其链接的工作项列表?

目前,我们不得不对第一次通话期间制作的每个工作项进行第二次调用,并且正在引入性能问题.

如果不是这样,有没有办法在不检索它们的情况下查看链接工作项的类型(例如,查看它是一项任务还是问题)?

.net tfs-sdk tfs2010 c#-4.0

11
推荐指数
2
解决办法
2万
查看次数

以编程方式在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)

c# tfs tfs-sdk tfs2010

11
推荐指数
1
解决办法
4724
查看次数

如何关联的工作项目在Visual Studio中"关联"或"解决" TFS API(VS2015)?

我用下面的代码分叉了一个项目:

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

11
推荐指数
2
解决办法
1万
查看次数

如何查找未链接到工作项的TFS更改集

有没有办法,通过查询或以编程方式,识别所有未链接到工作项的TFS变更集?

tfs tfs-sdk

10
推荐指数
2
解决办法
3135
查看次数

如何使用特定凭据连接到C#中的TFS服务器?

我正在尝试编写连接到TFS的ac#应用程序并检索工作项信息.不幸的是,似乎所有使用TFS SDK的示例都使用当前用户的默认凭据(即我的域登录信息).我找到的最接近的信息是使用TeamFoundationServer (String, ICredentials)构造函数,但是我找不到与ICredentials接口接口的合适类的任何信息(特别是因为它似乎没有使用System.Net ICredentials而是TeamFoundationServer特定的ICredentials).

有没有人对使用特定用户名/密码/域名组合登录TFS有任何见解?

c# authentication tfs tfs-sdk

9
推荐指数
2
解决办法
2万
查看次数

使用TFS API返回新创建的TFS工作项ID?

使用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)

tfs2008 tfs-sdk c#-4.0

9
推荐指数
1
解决办法
5093
查看次数

使用TFS中的WorkItemStore.Query指定参数的项列表

我有一个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>以及上面有和没有引号.每一个似乎都不起作用.

tfs tfs-sdk wiql

9
推荐指数
1
解决办法
5069
查看次数

检查文件是否已在源代码管理中

我正在使用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)

它完成了这项工作,但看起来很愚蠢,感觉很慢.这样做的正确方法是什么?

.net c# tfs tfs-sdk

9
推荐指数
1
解决办法
3792
查看次数

访问工作项的看板列(特定于团队的字段)

有没有办法使用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 kanban tfs-sdk tfs2012

9
推荐指数
1
解决办法
3246
查看次数

TfsConfigurationServer.GetService <VersionControlServer>()始终返回null

我正在尝试使用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)

我该怎么办?

.net c# tfs tfs-sdk tfs2010

8
推荐指数
1
解决办法
1万
查看次数