赞
踩
相信写过.net的小伙伴应该都用过NuGet来安装使用第三方或者官方的代码(程序集),就算你没用过,那相信你也见过。废话不多说,直接进入主题,抛出灵魂三问(who,why,how),本文主要介绍怎么搭建私有源。
截取部分官方解释:
适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以创建、共享和使用有用的代码。 通常,此类代码捆绑到“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。
对于 .NET(包括 .NET Core),共享代码的 Microsoft 支持的机制则为 NuGet ,其定义如何创建、托管和使用面向 .NET 的包,并针对每个角色提供适用工具。
简单理解它其实就是一个微软开发的包管理工具,就好比如JAVA中的Maven,Node中的NPM,Python中的PIP等等,其实目前大部分主流的编程语言都有自己的包管理工具。
首先它是个管理工具,那它就具备有安装、卸载、升级降级的功能。其次可以打包分享共享自己的代码供别人使用。最后总结,说白了,就是为了复用代码,避免重复造轮子。
那有小伙伴就会说了
”我可以直接把想复用的公共代码,编译好的程序集放在某个文件夹中,直接引用不也可以吗?“
这样子做也是没问题,虽说简单粗暴,但也存在两个比较严重的弊端:
这里我主要会演示三大部分,分别是搭建Nuget私有源,打包Nuget包,将Nuget包发布自己的私有源。
环境准备
名称 | 版本 |
---|---|
Visual Studio2019 | 16.11.18 |
dotnet CLI | 6.0.202 |
IIS | 10 |
1、新建一个解决方案
2、直接选空模板然后点创建
3、右击项目找到=》管理Nuget程序包=》搜索安装NuGet.Server
等待安装完毕,这时候会多出来几个文件,还有web.config多出一些配置,主要配置信息都在appSettings节点里面。
还有其他配置,有需要可以自行再翻译搜索一下用途
4、因为这边我是用windowns环境在运行,所以项目部署IIS跑起来试试看
1、简单创建一个.NET Standard的类库项目
2、右击项目=》属性,找到打包这栏,可以看到里面有很多包的元素
关于包的最佳做法,建议大家可以参照官方的指南,或者找个比较知名的nuget包,看看人家怎么写的。
3、然后就可以右击项目打包或者使用dotnet pack命令打包
这里我使用的是dotnet 命令来发布nuget包,当然还有其他方式,比如使用nuget CLI命令。
关于dotnet涉及nuget的命令,使用dotnet nuget --help
查看相关语句用法
在展开看看发布的用法dotnet nuget push --help
Options:
-h|–help Show help information
–force-english-output 使用不变的基于英语的区域性强制应用程序运行。
-s|–source 要使用的包源(URL、UNC/文件夹路径或包源名称)。如果在 NuGet.Config 中指定,则默认为 DefaultPushSource。
-ss|–symbol-source 要使用的符号服务器 URL。
-t|–timeout 推送到服务器的超时值(以秒为单位)。默认为 300 秒(5 分钟)。
-k|–api-key 服务器的 API 密钥。
-sk|–symbol-api-key 符号服务器的 API 密钥。
-d|–disable-buffering 推送到 HTTP(S) 服务器时禁用缓存可减少内存使用。
-n|–no-symbols 如果存在符号包,系统不会将该符号包推送到符号服务器。
–no-service-endpoint 请勿将 “api/v2/package” 追加到源 URL。
–interactive 对于身份验证等操作,允许命令阻止并要求手动操作。
–skip-duplicate 如果包和版本已存在,则跳过它并继续推送中的下一个包(若有)。
1、首先要将我们的nuget服务器站点的web.config的requireApiKey节点更改成false,这步很关键,如果没有修改成false,且你又不带密钥发布,那会提示
error: Response status code does not indicate success: 403 (Forbidden).
2、打开cmd或者power shell 输入dotnet命令
这里我使用powershell
PS C:\Users\Administrator> dotnet nuget push D:\个人项目\MyNugetServer\MyNugetServer\TestClassLibrary\bin\Debug\TestClassLibrary.1.0.0.nupkg -s http://localhost:7788/nuget
1、重新修改nuget服务器站点的web.config配置,将以下节点调整,然后保存
<add key="requireApiKey" value="true" />
<add key="apiKey" value="pwd@123456" />
2、打开cmd或者powershell 输入dotnet命令
这里我使用powershell
PS C:\Users\Administrator> dotnet nuget push D:\个人项目\MyNugetServer\MyNugetServer\TestClassLibrary\bin\Debug\TestClassLibrary.1.0.0.nupkg -k pwd@123456 -s http://localhost:7788/nuget
最后看看是不是nuget包是否成功上传到nuget服务器站点。
以我这边演示的例子来说,我nuget服务器部署的目录在D:\个人项目\publish\MyNugetServer
,然后找到打开里面的Packages文件夹。
1、打开VS=》工具=》选项=》NuGet包管理器=》程序包源,新增一个自己的包源,然后确认保存。
2、随意打开一个项目,切换到自己的程序包源,然后看看是否存在刚刚上传的包
简单使用操作就到此一游,更多高级玩法直接上官方文档看教程,还是那句话,官网永远是最好的老师。
886
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。