【把玩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


<<:  【Day24】闭包(Closure)

>>:  Day09 - dat GUI

控制反转与依赖注入(二)

今天讲的是控制反转与依赖注入(二) 控制反转与依赖注入 ...

Day 8:架设 Prometheus (0)

昨天简单介绍过 Prometheus 了,那麽今天我们就自己架一个来玩看看吧。尝试任何一个新工具的第...

[Day2]疯狂程设基本操作及Hello World

今天要来练习第一道题目及一些基本的操作。 先点CPE历届考古题2013/12/17 的第一题Hell...

Parser Generator (三)

上篇提到了 parser generator 在产生程序码的时候,可以用四个步骤去拆解里面的资讯并...

[Python 爬虫这样学,一定是大拇指拉!] DAY14 - TCP / IP

本篇将会简单介绍 TCP / IP 是什麽,及透过 TCP / IP 资料是怎麽传输的。但老样子,不...