Tag: tfs2010

TFS API – 更新工作项字段

是否可以使用TFS API更新工作项的字段? 这条线上的东西: WorkItemStore.GetWorkItem(Convert.ToInt32(current.WorkItemId)).State = rcbState.SelectedValue;

TFS 2010:当我可以使用XamlReader进行反序列化时,为什么无法使用XamlWriter.Save反序列化Dictionary

public static string GetXml(Dictionary parameters) { return XamlWriter.Save(parameters); } 上面的语句返回NotSupportedException 。 奇怪的是我可以使用XamlReader来序列化字典。 public static Dictionary GetParameters(IBuildDetail buildDetail, string buildDefinition) { var tfsProject = buildDetail.BuildDefinition.TeamProject; var buildServer = buildDetail.BuildServer; var buildDef = buildServer.GetBuildDefinition(tfsProject, buildDefinition); using (var stringReader = new StringReader(buildDef.ProcessParameters)) { using (var xmlTextReader = new XmlTextReader(stringReader)) { return (Dictionary) XamlReader.Load(xmlTextReader); } } } XML: $(BuildDefinitionName) […]

如何获取引用特定迭代路径的查询名称

使用选定的项目名称,我加载了迭代路径。 现在我需要获取引用所选迭代路径的查询名称。 用于加载传递项目名称的迭代路径的代码: private void LoadIterationPaths(string projectName) { var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(_tfs.Uri); var wiStore = tfs.GetService(); var projCollections = wiStore.Projects; var detailsOfTheSelectedProject = projCollections.Cast().Where(project => !String.IsNullOrEmpty(_selectedTeamProject.Name)) .FirstOrDefault(project => project.Name.Contains(_selectedTeamProject.Name)); var iterationPathsList = GetIterationPaths(detailsOfTheSelectedProject); foreach (var iterationPath in iterationPathsList.Where(iterationPath => iterationPath.Contains(projectName))) { cmbIterationPath.Items.Add(iterationPath); } cmbIterationPath.Enabled = cmbIterationPath.Items.Count > 0; } 现在,我需要获取引用所选迭代路径的查询名称列表。 谢谢。 注意 :我能够获得项目中的所有查询名称,但我不需要。 为此,我使用了以下代码 foreach […]

以编程方式签出TFS 2010中的文件

我有一个程序,当我给它所需的参数时,它创建一个新的分支。 创建新分支后,我想签出一个项目文件,添加一些后期构建事件,然后再次检查它。 我怎样才能做到这一点?

RegisteredTfsConnections.GetProjectCollection在测试服务器上返回null,但在dev服务器上不返回null

见主题。 在安装了VStudio2010的devmachine上,一切正常。 但不是在干净的测试服务器上(安装项目包括所有使用过的TFS组件)。 文档http://msdn.microsoft.com/en-us/library/ff735997.aspx对返回值的帮助不大: 如果未找到匹配则为空。 我应该使用其他方法来获得TFS连接吗? 我只是想列出并从特定项目下载一些文件。 更新 我又回到了这个: var uri = new Uri(“http://myserver/”); var tfs = new TeamFoundationServer(uri); var versionControl = tfs.GetService(); 哪个有效。 但是TeamFoundationServer已经过时了。 所以我想知道如何以新的方式做到这一点。

使用TFS 2010 API订阅Workspace Events

我正在尝试编写一些代码来监视本地工作站上的TFS工作区,但目前我遇到了触发事件的问题。 例如,如果我在我的工作区中映射一个新文件夹,我想订阅versionControl.UpdatedWorkspace事件,如果我执行“get”,我想映射到versionControl.Getting事件。 下面的代码是一个控制台应用程序,我认为应该可以工作,但是当我这样做时,什么也没发生。 有谁知道如何成功订阅这些活动? VS2010,TFS 2010,WinXP SP3 using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Net; using System.Text; using Microsoft.TeamFoundation.Client; using Microsoft.TeamFoundation.Framework.Client; using Microsoft.TeamFoundation.Framework.Common; using Microsoft.TeamFoundation.VersionControl.Client; namespace TestEventHanling { class Program { static void Main(string[] args) { Uri serverUri = new Uri(@”http://TfsServer:8080/tfs/collection”); using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(serverUri, CredentialCache.DefaultCredentials)) { VersionControlServer versionControl = (VersionControlServer)collection.GetService(typeof(VersionControlServer)); […]

C#代码检查TFS上是否存在工作空间

我正在尝试创建一个自动化工具来从TFS获取最新代码。 我需要检查系统上是否存在任何具有相同名称的工作区。 如果存在则获取工作空间实例。 否则创建工作区和映射。 我发现Microsoft.TeamFoundation.VersionControl.ClientVersionControlServer有方法Workspace GetWorkspace(string workspaceName, string workspaceOwner); 获得现有的工作空间。 但是,如果系统上不存在工作空间,则会抛出exception。 所以请给我一个检查工作空间和映射是否存在的代码。 目前我有以下代码,我知道它的方法不正确 try { //**Expected** an exception as sometimes the workspace may not exist or Deleted manually. workspace = versionControl.GetWorkspace(workspaceName, versionControl.AuthorizedUser); versionControl.DeleteWorkspace(workspaceName, versionControl.AuthorizedUser); workspace = null; } catch (Exception e) { DialogResult res = MessageBox.Show(“There are no workspace mapped. I am creating a new […]

TFS 2010 API:队列同步构建并获取每个排队构建的状态:“在代理上运行(等待构建代理)”

是否可以同步排队构建? 我试过这样的事情: CodeActivity: [BuildActivity(HostEnvironmentOption.Agent)] public sealed class QueueNewBuild : CodeActivity { // The Team Project that the build definition belongs to. [RequiredArgument] public InArgument BuildDetail { get; set; } // The build definition to queue [RequiredArgument] public InArgument BuildDefinition { get; set; } protected override BuildResult Execute(CodeActivityContext context) { // Obtain the runtime value of […]

以编程方式获取TFS责备(注释)数据

我正在尝试为Team Foundation Server 2010实现一个插件,该插件将创建有关团队项目中用户的报告。 从概念上讲,为了正确实现此插件,我所需要的只是访问在Visual Studio中使用“注释”function时获得的相同数据: 我需要能够告诉谁是最后一个创作给定行的人代码 我在互联网上浏览了文档或代码示例,但我能找到的所有建议都是建议,例如使用TFS命令行工具或看似不完整的代码示例 。 我不介意在客户端代码中做很多繁重的工作,但似乎没有一种明显的方法可以获得有关Changeset中代码内容的有用作者数据,也不会从合并详细信息返回中获取。

如何获取特定团队项目的签入/更改历史记录?

我正在使用TFS客户端API来尝试查询TFS 2010实例。 我需要能够做到以下几点 对于指定的团队项目,请说“项目A” 获取最近签到此项目的历史记录列表(比如最近50个,或者最后一天的列表) 然后能够遍历此列表并获取项目的元数据(理想的文件和文件夹名称) 我想我需要在VersionControlServer类上使用QueryXXX方法,但是找不到有关如何使用它的任何有用或清晰的示例。 我已经看到有GetLastestChangesetId方法,但这看起来不像它可以作用于特定项目或目录。