iT邦幫忙

2021 iThome 鐵人賽

DAY 12
1
DevOps

把玩Azure DevOps系列 第 12

【把玩Azure DevOps】Day12 Artifacts應用:上傳第一個nuget package

前一篇文章簡單介紹了Azure DevOps Artifacts,知道了它就是用來存放私有套件的套件庫,這一篇我們就來將C# Project產生的nuget package上傳上去吧!

首先,要產生nuget package最簡單的方式,就是在C#專案中的屬性中勾選Generate NuGet package on build,這樣在編譯專案的時候就會自動產生nupkg檔案了:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961KLAKJBK9Xp.png

nupkg檔案預設會放在Debug或Release裡,和dll不是在相同的目錄:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961LTfD59SOym.png

接下來要準備將nupkg檔案上傳到Azure DevOps Artifacts,先在Artifacts feed的頁面中點選Connect to feed:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961Iu7RSzMmf6.png

接著可以選擇用dotnet cli或是nuget cli來上傳package,Visual Studio選項並沒有上傳的功能:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961dXNfdio3B4.png

選擇dotnet或nuget任何一個cli的指令都差不多:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961g6cZYIGkil.png

https://ithelp.ithome.com.tw/upload/images/20210924/20033961oeSmlXFnpC.png

如果有裝Visual Studio的話,dotnet cli不需要另外安裝,nuget cli則是要另外下載(可以參考官方文件,或是點這下載)。

上圖的Project setup中提到將nuget.config檔案加到C#專案或sln方案所在的目錄,其實也有別的方式:

如果是下載nuget.exe檔案的話,照著內容複製(不要點它的複製按鈕,只會複製add那行),貼在記事本之後儲存成nuget.config放在和nuget.exe相同的位置就行。

如果是要用dotnet cli的話,可以透過VS的Package Manager Settings設定Package source,加入一個新的Source來源,名稱可以自取,網址就照指示上的複製它的網址貼上就行:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961LPLJoo0uiO.png

https://ithelp.ithome.com.tw/upload/images/20210924/20033961IEzeX5BnRt.png

上圖的指示中還有提到,如果你是第一次使用Azure Artifacts,要下載一個工具(Get the tools),其實就只需要在PowerShell中貼上下面這行執行就可以了(執行過一次就行,以後就不用了):

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) }"

上面這個主要是讓cli在執行push package到Artifact feed的時候可以跳出登入的畫面,所以如果執行cli的時候出現下面的訊息就是少裝了credProvider(上面那個):

error: Response status code does not indicate success: 401 (Unauthorized)

最後只需要打開cmd或powershell,輸入下面的指令就可以上傳nuget package檔案了:

dotnet nuget push --source PackageSource名稱 --api-key az nupkg檔案路徑
nuget push -Source PackageSource名稱 -ApiKey az nupkg檔案路徑

上面兩個指令是不是很像?第一個是用dotnet cli,第二個就是nuget cli(nuget.exe),自己選一個方式吧!

Push完之後就可以在Artifact feed看到剛剛推上去的Package了:

https://ithelp.ithome.com.tw/upload/images/20210924/20033961H2ZRuYHW06.png

這時候在VS裡面也可以搜尋到剛才上傳的Package了(記得右上的Package Source要選上面新增上去的):
https://ithelp.ithome.com.tw/upload/images/20210924/20033961ykxOtCJed6.png


上一篇
【把玩Azure DevOps】Day11 Azure DevOps Artifacts簡介
下一篇
【把玩Azure DevOps】Day13 Pipeline與Artifacts應用:Build nuget package上傳到Private nuget
系列文
把玩Azure DevOps30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言