给定tfs中文件夹的特定路径,我需要以递归方式查找给定变更集的文件夹中的所有文件和文件夹.换句话说,我需要在给定的变更集的tfs中获得路径的传递闭包.我这样做的问题是在tfs中列出特定文件夹的内容.在C#中这怎么可能?
所以我试图从TFS中的工作区检索文件.不幸的是,我所做的每一次尝试都会导致应用程序停滞不前.截至目前,这是代码:
public void GetWorkspaceFiles(string workspaceName)
{
VersionControlServer sourceControl = (VersionControlServer)TfsServer.GetService(typeof(VersionControlServer));
var items = sourceControl.GetItems(workspaceName, VersionSpec.Latest, RecursionType.Full)
.Items
.Where(x => x.ItemType == ItemType.File)
.ToList();
for (int x = 0; x < items.Count; x++)
items[x].DownloadFile();
Run Code Online (Sandbox Code Playgroud)
会发生什么事情,每次我运行这个应用程序(在多台机器上),它都会停止运行items[x].DownloadFile().TFS中的所有文件都没有锁定,一切都很好.尝试使用该Workspace.Get()方法会产生同样的结果.
如果我点击暂停,x将是一个特定值,但我无法访问items集合,因为当我这样做时,我得到"无法计算表达式,因为当前线程处于休眠状态,等待或加入".当我评估调用堆栈时,我得到:
[In a sleep, wait, or join]
[External Code]
GetWorkspaceFiles(string workspaceName) Line 55
Run Code Online (Sandbox Code Playgroud)
我不知道该做些什么.每当我暂停应用程序时,x它总是处于相同的值(它停止的值对于每个运行的应用程序都是不同的).
有人有主意吗?
我传递给这个方法的工作区是$/QA/Automated Test Scripts/Regression or System Test Scripts/RDE or Condo(通过调试器验证).
但是,当我查看tfs日志时,它看起来正在下载我正在运行的代码文件,因为它说:
02/10/2011 12:26:58 (pid 5808, tid 5968, 42180 ms) Recording OperationStatus.Getting for …Run Code Online (Sandbox Code Playgroud) 我需要能够以编程方式查找TFS 2010中变更集中各个文件的代码流失信息(添加,更改,删除行).我需要执行此操作的程序是桌面客户端应用程序.
有人知道怎么做吗?你有想要分享的示例代码吗?
给定一个变更集c并且假设c包含合并操作,我想获得已合并并导致c的所有变更集的列表.
例如:
现在我想从变更集3中获取变更集1 + 2,变更集合并包含它.
我想使用TFS API执行此操作.我遇到了versionControlServer.TrackMerges方法,但是我不明白该方法应该是什么ItemIdentifiers.不幸的是,我找不到如何使用此方法的示例.此外,我不确定这是否真的是正确的.
是否可以使用TFS API更新工作项的字段?
这句话:
WorkItemStore.GetWorkItem(Convert.ToInt32(current.WorkItemId)).State = rcbState.SelectedValue;
Run Code Online (Sandbox Code Playgroud) 我正在尝试从C#应用程序连接到TFS Preview.
目前,我一直在试图进行身份验证.我添加了对TFS 2010 DLL的引用(我相信这些将使我能够连接,如果我错了请纠正我!)我的测试用例就像.我尝试连接的URL在表单中https://MYSERVERNAME.tfspreview.com/DefaultCollection
var teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(workPath, new UICredentialsProvider());
teamProjectCollection.EnsureAuthenticated();
Run Code Online (Sandbox Code Playgroud)
这失败,出现以下异常.
服务器https://MYSERVER.tfspreview.com/ $/defaultcollection 无法使用Team Foundation服务.技术信息(针对管理员):TF400813:资源不可用于匿名访问.需要客户端验证.
我原本希望UICredentialsProvider在工厂方法中创建团队项目集合,并使用它来提供身份验证.TFS预览服务使用Windows Live身份验证,但我希望能够涵盖这一点.
正确方向的指针非常感谢!
我正在尝试使用TFS API获取测试计划.
TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://xxxxxxx:8080/tfs/DefaultCollection"));
var service = (ITestManagementService)tfs.GetService(typeof(ITestManagementService));
Run Code Online (Sandbox Code Playgroud)
变量"service"始终返回null.
你知道吗,为什么?
我正在研究TFS API,我不知道TFS API有任何像LIMIT关键字或没有.我需要它进行分页.
谢谢
我有一个MVC应用程序从托管TFS中提取数据,当我部署它时,我收到此错误
Could not load type 'Microsoft.TeamFoundation.Client.BasicAuthCredential' from assembly 'Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Run Code Online (Sandbox Code Playgroud)
但是,我在项目中引用了Microsoft.TeamFoundation.Client,并且dll在服务器上.
为什么它无法从dll加载Client.BasicAuthCredential,我将如何修复它?
我正在尝试获取团队TFS项目的当前迭代路径.我试图这样做的方法是使用http://blog.johnsworkshop.net/tfs11-api-reading-the-team-configuration-iterations-and-areas/上的博客.我首先从以下代码获取团队配置:
TfsTeamProjectCollection tpc = TFSConncetion(@"http://tfs/url");
var configSvc = tpc.GetService<TeamSettingsConfigurationService>();
var configs = configSvc.GetTeamConfigurationsForUser(projectUri);
Run Code Online (Sandbox Code Playgroud)
这个问题是我的配置总是空的,即使我是团队成员.我很肯定我的项目URI也是正确的.在此之后,我将获得团队设置并使用它来显示当前的迭代路径.
TeamSettings ts = config.TeamSettings;
Console.WriteLine(ts.CurrentIterationPath);
Run Code Online (Sandbox Code Playgroud)
即使这不起作用,我仍然可以从团队设置中查询迭代日期,以获得在今天之前有一个开始日期并在今天之后完成日期的一次迭代.主要的问题是,当我尝试使用我的项目URI获取团队配置时,我无法让我的TeamSettingsConfigurationService返回任何空值.