Powershell和TFS:tf.exe与Power工具TFS cmdlet?

我正在创建一个脚本来在我的TFS实例中执行大量移动。我有2010 TFS Power Tools提供的tfs cmdlet,但它们的get-help文档非常稀疏。具体来说,Add-TfsPendingChange似乎不支持重命名,这迫使我改为使用“tf.exe rename”。 首先:我有没有错过cmdlet的文档?我已尝试使用命令的get-help,但它们不支持-detailed或-examples标志。有什么更多可用吗? 其次:我有什么理由比普通的tf.exe更喜欢任何cmdlet?除了在执行类似功能时通过管道传递对象之外,还有其他好处吗?     
已邀请:
TF cmdlet在这一点上是一个简约的产品,包括提供的文档。一般情况下,我会使用TF cmdlet,它们支持我正在尝试做的事情 - 特别是如果您有任何疑问。处理查询cmdlet的输出要容易得多,因为它们为您提供了丰富的对象,而不是使用像
tf status . /r
这样的东西时必须解析的文本流。 另请注意,在x64 Windows系统上,TF cmdlet仅适用于32位PowerShell主机。     
tf cmdlet并非完全没用,但是......我们现在决定不在我们的构建环境中尝试使用它们,即使它意味着文本解析。 除了x64之外,还有很多缺少的命令(感谢@Keith)和缺少的参数,最重要的是,它们在远程会话中不起作用!     
第三种选择是在PowerShell中使用TFS公共程序集。执行此操作时,您可以访问所有TFS客户端功能,并且仍然使用TFS cmdlet。是否选择此方法超过
tf.exe
和其他TFS命令行可执行文件取决于您喜欢的脚本环境。 这是一个PowerShell命令,用于引用TFS 2013公共程序集(对于TFS 2012或2010,只需将
Version=12.0.0.0
更改为
Version=11.0.0.0
Version=10.0.0.0
)。
'Microsoft.TeamFoundation.Client', 'Microsoft.TeamFoundation.Common', 'Microsoft.TeamFoundation.VersionControl.Client' |
    ForEach-Object {
        Add-Type -AssemblyName "$_, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    }
对于重命名示例,您可以: 使用
Get-TfsWorkspace
cmdlet实例化a
Microsoft.TeamFoundation.VersionControl.Client.Workspace
对象。 调用
Workspace
对象的PendRename,GetPendingChanges和Checkin方法。 像这样的东西:
$workspace = Get-Workspace
$workspace.PendRename($oldItemPath, $newItemPath)
$pendingChange = $workspace.GetPendingChanges($oldItemPath)
$workspace.Checkin($pendingChange, $comment)
    

要回复问题请先登录注册