自從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了