问题标签 [tfs-sdk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tfs - 使用服务器端方法更新 TFS 工作项
我正在尝试使用 TFS 2010 的新服务器端插件功能。(我从这里和这里了解了如何开始执行此操作的基础知识)
它工作得很好,比处理 TFS 事件的普通 Web 服务方式快很多倍。
但是服务器端的方法非常非常无证。我已经弄清楚如何检索工作项(通过Microsoft.TeamFoundation.WorkItemTracking.Server.DataAccessLayerImpl.GetWorkItem
(和GetWorkItemXml
)
但是做更新让我很困惑。所有更新方法都采用 xml。但是您从 GetWorkItemXml 返回的 xml 格式不正确(它说“不允许操作 'FIELD')。
我尝试使用客户端 TFS API 并且它有效。但它比我想要的要慢,因为它正在将soap调用打包回服务器。由于我已经在服务器上运行,所以不必有额外的(不需要的)通信步骤会很好。
有没有人对 TFS 有任何服务器端经验?你能给我一个关于如何使用服务器端方法更新工作项的指针吗?
tfs - 如何以编程方式更新自定义 TFS 字段
我们有一个自定义构建过程(不使用 MS Build),在此过程中,我将“假”构建添加到全局构建列表中。我这样做的原因是您可以为给定的工作项选择构建(在构建中找到)。我们有一个自定义字段,包含构建,旨在显示该工作项已修复在哪个构建中。我无法弄清楚如何以编程方式更新此字段。我的想法是我将有一个小型应用程序来执行此操作,我将在构建过程中调用它,查找自上次构建以来的所有工作项,然后更新这些工作项的字段。有任何想法吗?
c# - 尝试从 TFS 工作区检索文件会停止应用程序
所以我试图从 TFS 的工作区中检索文件。不幸的是,我所做的每一次尝试都会导致应用程序停滞不前。截至目前,这是代码:
发生的情况是,每次我(在多台机器上)运行这个应用程序时,它都会在items[x].DownloadFile()
. TFS 中的所有文件都没有被锁定,一切都很好。尝试使用该Workspace.Get()
方法会导致相同的结果。
如果我点击暂停,x 将是一个特定值,但我无法访问项目集合,因为当我这样做时,我得到“无法评估表达式,因为当前线程处于睡眠、等待或加入状态”。当我评估调用堆栈时,我得到:
我不知道该怎么做。每当我暂停应用程序时,x
它总是处于相同的值(尽管每个应用程序运行的值都不同)。
有人有想法么?
编辑:添加诊断逻辑(基于格兰特答案中的链接)后,我比以往任何时候都更加困惑。
我传递给此方法的工作区是$/QA/Automated Test Scripts/Regression or System Test Scripts/RDE or Condo
(通过调试器验证)。
但是,当我查看 tfs 日志时,它看起来正在下载我正在运行的代码文件,正如它所说:
在该条目之后是:
之后,日志文件没有进一步更新,我的应用程序停止了。我感到困惑的是
1)当我指定一个完全不同的 TFS 工作区时,为什么这会试图从 TFS 中提取应用程序代码
2)为什么在尝试检索文件后会停止?这可能是因为它fmMain.cs
在 Visual Studio 中打开,但它仍然应该出现异常并且不会挂断。当文件通过visual studio正常打开时,我可以获得最新的。
编辑2:
好的,所以我正在阅读 MSDN,我注意到工作区名称可以是文件的本地路径。所以我修改了我作为workspaceName
参数传入的文件的本地目录。我仍然会遇到问题,但日志文件中的原因却不太清楚。我已经在此处上传了 tf.log 文件(我显然更改了专有信息,例如服务器和项目名称,但其他所有内容都保持不变)。在最后一个日志条目之后,不再向日志写入数据。
tfs - 在 TFS 中使用 WorkItemStore.Query 为参数指定项目列表
我有一个 TFS 项目的以下 WIQL 查询:
这是通过 .NET TFS API 运行的。
我的问题是AssignedTo参数。这是如何指定的?我已经尝试将其作为string[]
,List<string>
以及上面的带和不带引号。每一个似乎都不起作用。
c# - TFS API 变更集分支
在这篇文章之后,我试图从变更集中提取分支历史记录。但是,我注意到 Changeset 有一个名为 IsBranch 的属性,这不是本文描述的检查 changeset 是否为分支的方式。
以下检查有什么区别:
和
c# - TfsConfigurationServer.GetService() 总是返回 null
我正在尝试使用 TFS SDK 连接到 TFS 2010,但无法获得 VersionControlServer 服务。
然后
两者总是返回 null:
我该怎么办?
c# - TFS 2010 API - 遍历 QueryHistory 中返回的变更集列表太慢了
长话短说。分析后,此命令占用 0.1% 的处理时间
这一个,65,7%。(有趣的是,里面所有的处理只消耗3%)
我需要几秒钟才能得到我的清单......发生了什么?为什么遍历列表这么慢?
有没有更快的方法来做到这一点?
编辑:另外,为什么我不能直接将其转换为List<Changeset>
?
c# - 使用 TFS 2010 API 订阅工作区事件
我正在尝试编写一些代码来监视本地工作站上的 TFS 工作区,但目前我在触发事件时遇到了问题。
例如,如果我在我的工作空间中映射一个新文件夹,我想订阅 versionControl.UpdatedWorkspace 事件,如果我执行“get”,我想映射到 versionControl.Getting 事件。下面的代码是一个我认为应该可以工作的控制台应用程序,但是当我这样做时,什么也没有发生。有谁知道如何成功订阅这些事件?
VS2010、TFS 2010、WinXP SP3
tfs - 使用 TFS SDK,我可以在服务器中注册自定义元数据吗?
我有一个自定义的 Windows 服务,Visual Studio 插件连接到该服务,Visual Studio 连接到 Team System 服务器。
无论如何,我的自定义服务是否可以以某种方式在 TFS 服务器中注册它的 uri,以便 Visual Studio 插件可以从 TFS 检索 uri 并知道如何连接到服务?
主要是,我想防止插件的用户必须配置自定义服务的 uri,因为我知道他们将始终连接到 tfs 服务器(windows 服务也连接到同一个 TFS 服务器,所以你不会使用没有相同 TFS 实例的服务和插件)。
c# - TFS API InformationNodeConverters.GetAssociatedChangesets() 未按预期工作
我想我可能误解了这个函数的目的,但这是我的问题。
当我查看构建摘要时,我看到构建运行成功,它告诉我:
我有以下代码,它在控制台应用程序中运行,告诉我构建中包含哪些变更集。
问题是这没有返回任何内容。Information 属性有 6 个节点,其中没有一个与变更集或工作项相关。为什么 VS2010 构建摘要告诉我我有一个关联的变更集,但下面的代码告诉我不同?