自從VSTS有了Packages的功能,可以讓我們自建團隊私有的Nuget後,就習慣把大量可以Re-Use套件放上去,可以讓整個團隊共同使用這些套件。不過,如果給自己團隊是沒有甚麼問題,今天要跨團隊使用呢?就是給在不同專案成員也用你開發的Package,在同一個VSTS URL下,只要去設定Feed權限也就可以,如下圖,在BestFeed下設定給予要讀取此Package的人員那些權限
但是,如果今天是不同VSTS呢,例如 BBB.visualstud.com 要去讀取 AAA.visualstud.com Packages內的套件,又或是其他版控平台要來讀取AAA.visualstud.com Packages內的套件。當然第一前提依舊必須本身你有在AAA.visualstud.com內有帳號,如果沒有帳號一切就別談囉
以為有帳號就可以嗎?如果在Visual Studio內是沒問題,是可以正常把套件裝起來,不過,這時候你會發現必須先輸入AAA.visualstud.com帳號密碼,一旦做了自動化建置,並不會跳出這樣需求視窗,這時候就會發生找不到這個在AAA.visualstud.com內套件問題,想當然而就會build失敗了。要解決這問題採用一個最簡單方式,就是把驗證資訊設定在Nuget.config中
假設原本的Nuget.config是這樣設定
這時候需要加入<packageSourceCredentials>屬性,剛剛提到需要可以驗證通過除了帳號還需要密碼,但密碼不是使用這組帳號的密碼,而是必須產生一組PAT密碼,要建立PAT密碼可以參考這篇文章[打通自動化雲端部署到地端-安裝VSTS Agent
]
有了PAT密碼就把帳號與密碼資訊放入Nuget.config中,在<packageSourceCredentials>內要加一組跟PackageSources的Key Name一樣名稱的tag
並添加Username和ClearTextPassword,前者就是登入到AAA.visualstud.com,後者就是PAT密碼。完成後,在自動化建置中就可以去抓去對方的Package了