繁体   English   中英

使用PowerShell从构建步骤访问TFS TeamProjectCollection

[英]Access TFS TeamProjectCollection from build step with PowerShell

我正在尝试在我们的一个团队项目中使用powershell创建一个预构建步骤,以增加该VS解决方案中所有程序集/应用程序的构建号。 这是针对TFS2015更新2的。

我在网上到处都找到了一些示例代码,并拼凑出了我想像的效果。 我可以在TFS服务器上手动运行powershell脚本(已通过Windows帐户验证为服务器),它可以正常工作,但在构建过程中无法正常运行。

这是有问题的示例代码,我不断收到错误。 它与身份验证/与TFS服务器的连接有关:

$CollectionUrl=New-Object System.Uri("$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI")
$BuildUrl="$env:BUILD_BUILDURI"

# get the team project collection
$TeamProjectCollection=[Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($CollectionUrl)
# get the build server
$BuildServer=$TeamProjectCollection.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])

# get the build detail
$BuildDetail=$BuildServer.GetBuild($BuildUrl)

# get the build definition
$BuildDefinition=$BuildDetail.BuildDefinition

我得到的错误是:

带有“ 1”参数的异常调用“ GetService”:“ TF30063:您无权访问http:// servername / TPCName

我尝试使用上面的调用来获取TPC,以及它的构造方法,但都没有用。

$TeamProjectCollection=New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($CollectionUrl)

因此,我开始尝试根据到服务器的登录凭据构建凭据对象,并查看是否可以通过这种方式连接到TPC。 仍然不起作用(在服务器上或在构建过程中),但是出现了不同的错误:

$netCred = New-Object System.Net.NetworkCredential($username,$password)
$basicCred = New-Object Microsoft.TeamFoundation.Client.BasicAuthCredential($netCred)
$tfsCred = New-Object Microsoft.TeamFoundation.Client.TfsClientCredentials($basicCred)

# get the team project collection
$TeamProjectCollection=New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($CollectionUrl, $tfsCred)

引发异常:

带有“ 1”参数的异常调用“ GetService”:“ TF400324:服务器上没有Team Foundation服务。

我还尽力为TFS服务运行的Windows帐户修改TFS权限,以确保那里没有问题。 我相当确定我已将其添加到我的身份所在的所有角色/组中,但仍无法进行身份验证。

我现在不知所措。 有人可以帮助我确定如何使用定义的凭据正确连接到TFS服务器,还是可以帮助我调整服务帐户,身份,配置选择等的权限; 需要访问teamProjectCollection。

您需要专门指示TFS / VSTS允许执行中的构建回叫TFS / VSTS。 这样可以保护您的服务器免受恶意开发人员退出构建脚本的侵害。

在此处输入图片说明

您应该在构建的“选项”选项卡中看到“启用身份验证”选项。

**注意:您应该使用提供的Task SDK: https//github.com/Microsoft/vsts-task-lib

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM