Tfs 将整数转换为Microsoft.TeamFoundation.VersionControl.Client.Changeset

Tfs 将整数转换为Microsoft.TeamFoundation.VersionControl.Client.Changeset,tfs,type-conversion,Tfs,Type Conversion,我有一个TFS构建过程,在该过程中调用Powershell命令,将变更集返回到构建过程。我想将此变更集与生成本身关联,以便它出现在生成报告中 问题在于,Powershell返回的值是一个整数,用于报告TFS中的更改集的变量类型为: “Microsoft.TeamFoundation.VersionControl.Client.Changeset” 在TFS构建过程中是否有方法将整数转换为此类型? 如果尝试进行直接转换,则会出现以下错误: 无法将“整型”类型的值转换为 “Microsoft.Tea

我有一个TFS构建过程,在该过程中调用Powershell命令,将变更集返回到构建过程。我想将此变更集与生成本身关联,以便它出现在生成报告中

问题在于,Powershell返回的值是一个整数,用于报告TFS中的更改集的变量类型为: “Microsoft.TeamFoundation.VersionControl.Client.Changeset”

在TFS构建过程中是否有方法将整数转换为此类型?

如果尝试进行直接转换,则会出现以下错误:

无法将“整型”类型的值转换为 “Microsoft.TeamFoundation.VersionControl.Client.Changeset”


另请注意:我已经摆弄了社区TFS构建扩展,但找不到所需的活动。

Microsoft.TeamFoundation.VersionControl.Client.Changeset
是表示提交到存储库的一组更改的。您似乎从Powershell脚本中获得了变更集ID,因为您提到该值是一个整数。您需要使用变更集类来获取变更集的ID。

这应该是“获取”操作,而不是“转换”操作。您需要通过返回的整数变更集ID获取变更集,然后将变更集与生成关联

$tfsUrl = “xxxxxxxxxxxxxxxx” 
$chId = “xxxxxx” 
$tfs = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection $tfsUrl 
$vcs = $tfs.GetService([Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer]) 
$changeset = $vcs.GetChangeset($chId)

您使用的是哪个版本的TFS?您是否从Powershell脚本获取变更集ID?抱歉,我应该提到我从Powershell脚本获取的值是变更集ID。这看起来像什么?目前我有:
Microsoft.TeamFoundation.VersionControl.Client.Changeset.ChangesetId=MyBuildID
,但这是在抛出“对非共享成员的引用需要对象引用”。错误部分解决了这个问题,它是错误的类:
Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer.GetChangeset(MyBuildID)
现在只修复随之而来的错误:“需要引用程序集‘Microsoft.TeamFoundation.Client,版本=12.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a’,其中包含已实现的接口‘Microsoft.TeamFoundation.Client.ITfsTeamProjectCollectionObject’。将一个添加到您的项目中。”这还有一点帮助,我必须将其从Powershell转换为TFS构建使用的弱VB.NET脚本。如果我有选择,我将使用Powershell获取变更集,但您不能将对象从Powershell返回到TFS构建。