标签: tfs-sdk

TFS API - 如何从特定的团队项目中获取工作项

我正在尝试查询主要的单个团队项目,TfsTeamProjectCollection其中总共包含194个团队项目.我确切地知道如何WorkItem通过Id得到一个WorkItemStore.问题是,通过这样做,API搜索集合中的所有项目,查询大约需要一分钟.这太慢了,必须有一种直接从单个团队项目查询工作项的方法吗?这是我的代码:

    private Uri collectionUri;
    private TfsTeamProjectCollection projectCollection;
    private WorkItemStore workItemStore;

    public Project GetTeamProject()
    {
        projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(collectionUri);

        workItemStore = projectCollection.GetService<WorkItemStore>();
        Project teamProject = workItemStore.Projects[TFS_PROJECT_KEY];
        return teamProject;
    }
Run Code Online (Sandbox Code Playgroud)

既然我有我感兴趣的团队项目,我如何通过ID查询工作项或者只获取该项目中的所有工作项?

c# tfs tfs-sdk tfs2010

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

TFS API:GetLocalWorkspaceInfo始终返回null

在我的一台机器上,我从任何GetLocalWorkspaceInfo调用中得到null的返回值.对于这个简单的程序,我已经孤立到问题甚至失败了:

namespace WorkstationTest
{
    using Microsoft.TeamFoundation.VersionControl.Client;

    class Program
    {
        static void Main()
        {
            string workspaceLocalPath = @"C:\Dev";
            var info = Workstation.Current
                          .GetLocalWorkspaceInfo(workspaceLocalPath);

            // info is always null here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过:

  • 完全相同的代码就像我应该的那样在我的另一台机器上工作.

  • 我已经确认我有一个工作区 C:\Dev

    工作区截图

  • 我创建了一个新工作区并在不同的目录中更改workspaceLocalPath了代码中的变量以匹配.

  • 我查阅了文档,其中声明返回值为null if the path is not in a workspace.从上图中,路径应位于工作区中.

然而,一切似乎都表明这应该有效.有什么我可以失踪的吗?

c# tfs-sdk

27
推荐指数
4
解决办法
9374
查看次数

TFS 2010 API资源

有没有人有任何好的资源来使用TFS 2010 API?我特别关注如何创建,读取,更新和删除工作项.

tfs-sdk tfs2010

18
推荐指数
2
解决办法
7312
查看次数

如何以编程方式获取有关TFS中分支的信息?

我需要以编程方式找到有关TFS中分支的信息.例如,我感兴趣的主要内容是给根文件夹$/MyProject/Project1我需要找出其他文件夹已从中分支出来.我只是在正确的API方法之后.

假设我已连接到TFS服务器并具有访问权限VersionControlServerWorkspace类实例.

.net tfs tfs-sdk

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

如何使用Team Foundation Server SDK获取最新版本的源代码?

我正在尝试使用SDK以编程方式从TFS中提取最新版本的源代码,而我所做的某些方法不起作用:

string workspaceName = "MyWorkspace";
string projectPath = "/TestApp";
string workingDirectory = "C:\Projects\Test\TestApp";

VersionControlServer sourceControl; // actually instantiated before this method...

Workspace[] workspaces = sourceControl.QueryWorkspaces(workspaceName, sourceControl.AuthenticatedUser, Workstation.Current.Name);
if (workspaces.Length > 0)
{
    sourceControl.DeleteWorkspace(workspaceName, sourceControl.AuthenticatedUser);
}
Workspace workspace = sourceControl.CreateWorkspace(workspaceName, sourceControl.AuthenticatedUser, "Temporary Workspace");
try
{
    workspace.Map(projectPath, workingDirectory);
    GetRequest request = new GetRequest(new ItemSpec(projectPath, RecursionType.Full), VersionSpec.Latest);
    GetStatus status = workspace.Get(request, GetOptions.GetAll | GetOptions.Overwrite); // this line doesn't do anything - no failures or errors
}
finally
{
    if (workspace != null)
    { …
Run Code Online (Sandbox Code Playgroud)

c# tfs tfs-sdk

15
推荐指数
3
解决办法
3万
查看次数

如何使用Team Foundation Server API创建测试运行和结果?

我找到了几个关于使用TFS API检索测试结果的示例,但没有关于以编程方式创建结果的文档.我的目标是创建一个轻量级的替代方法,使用Microsoft Test Manager来运行手动测试.有任何人对此有经验吗?那里有没有我遗失的例子吗?

这是我到目前为止所拥有的:

ITestCaseResult CreateNewTestCaseResult(ITestSuiteEntry testCaseEntry)
{
    var run = testCaseEntry.TestSuite.Plan.CreateTestRun(false /* not automated */);
    run.AddTest(testCaseEntry.TestCase.Id, suiteEntry.TestSuite.DefaultConfigurations[0].Id, suiteEntry.TestSuite.Plan.Owner);
    run.Save(); // so that results object is created
    return run.QueryResults()[0];
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是启动新运行的正确方法,我不确定如何记录测试的每个操作的结果.

c# visual-studio-2010 tfs-sdk tfs2010 microsoft-test-manager

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

是否有用于TFS 2013内部部署安装的REST API?

我们使用Team Foundation Server 2013公司进行源代码和任务管理.有没有办法如何通过REST API操作积压工作项?

我们的项目可通过网址访问:https://tfs.company.com/tfs/ProjectCollection/Project

我发现了这个:https://tfsodata.visualstudio.com/但这似乎只适用于https://visualstudio.com中的项目.

我还要感谢一些例子.

谢谢!

tfs-sdk tfs2013 azure-devops-rest-api

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

TFS 2015 SDK缺少Microsoft.WITDataStore64.dll

我试图切换到TFS 2015 SDK dll(版本14)有几个原因.首先,它们是nuget,第二,2013 SDK dll(版本12)需要在IIS中翻转32位标志.

我下载了nutget包,命名空间全部与现有的12版命名空间对齐.

一切都很好,本地部署没有错误.

但是,当我尝试使用该WorkItemStore服务加载项目时.

TfsTeamProjectCollection collection = new TfsTeamProjectCollection(URL);
var service = collection.GetService<WorkItemStore>();
Run Code Online (Sandbox Code Playgroud)

我明白了:

其他信息:无法加载DLL'Microsoft.WITDataStore64.dll':找不到指定的模块.(来自HRESULT的异常:0x8007007E)

当我在IIS中切换回32 bt标志时,我得到:

其他信息:无法加载DLL'Microsoft.WITDataStore32.dll':找不到指定的模块.(来自HRESULT的异常:0x8007007E)

注意:这是所有正常工作的代码,我所做的就是删除对GAC程序集的引用并添加NUGET包.

根据微软的说法,nuget软件包应该与TFS 2013一起使用,并且适用于2013 SDK的用户

现有的Windows应用程序利用旧版本的TFS Client OM.

c# tfs tfs-sdk nuget tfs-2015

12
推荐指数
2
解决办法
7467
查看次数

我在哪里可以找到Visual Studio 2015安装中的Microsoft.TeamFoundation.VersionControl.Client.dll?

我按照文章中的说明,在开发签入策略时支持Visual Studio的多个版本.现在,我在哪里可以找到:

Microsoft.TeamFoundation.VersionControl.Client.dll
Run Code Online (Sandbox Code Playgroud)

对于我的VS2015安装下的Team Foundation Server 2015(版本14)?(或者在NuGet?)

没有类似的东西

C:\Program Files (x86)\Microsoft Visual Studio 14\Common7\IDE\PrivateAssemblies\
Run Code Online (Sandbox Code Playgroud)

tfs tfs-sdk visual-studio-2015

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

如何在不创建工作区的情况下从tfs获取特定版本的文件夹?

我想在特定时间(变更集)获取项目的源代码.所以我需要下载整个文件夹.我想在不同的时间做这件事并且处理不同的工作空间不是很方便.

我知道TFS获取特定版本到单独的文件夹(带工作空间)和Need命令从TFS获取文件而没有工作空间(一个文件).

没有创建新工作区,是否有整个文件夹的解决方案?

编辑 我发现接受的答案太雄心勃勃了.我需要更简单的东西.

假设:

  • 我可以在我的计算机上从Visual Studio访问TFS
  • 我想ChangeSetNumberDesiredFolderTFS项目中的文件夹中获取Changeset tProj

我从Visual Studio命令提示符中的目标文件夹运行以下批处理

set workspace_name=TemporaryWorkspace%username%
set changeset= ChangeSetNumber                
tf workspace -new %workspace_name% -noprompt
tf workfold -map $/tProj . -workspace:%workspace_name%
tf get $/tProj/DesiredFolder -version:C%changeset% -recursive -noprompt
tf workfold -unmap . -workspace:%workspace_name%
tf workspace -delete %workspace_name% -noprompt
Run Code Online (Sandbox Code Playgroud)

启动下载的解决方案时,必须确认删除源控制关联.

tfs command-line tfs-sdk tfs2010 visual-studio-macros

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