簡體   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