搭建Nuget服务器(Nuget私服)_CL10011314155的博客-程序员秘密

技术标签: json  

一、前言

对公司或者对个人来说,经过一段时间的沉淀之后,都会有一些框架或者模块,为了对这些框架或者模块进行更好的管理和维护,也为了方便后面的开发或者其他同事,我们可以在我们本地或者内网搭建一个Nuget服务器。当然也可以把相关的Package提交到Nuget官方上去,只是提交上之后,就相当于公开了。怎么提交到官方,可以去官方网站http://www.nuget.org/找相关的攻略,这里我们将讲解怎么搭建一个Nuget私服。

二、搭建Nuget私服

先创建一个命名为“PFTNugetSystem”的空白解决方案,然后添加web站点(这里我们使用.NET Framework框架的web程序)

image

项目名称我们命名为“PFT.NugetServer”,在下面的界面中,我们选择“空”模板,然后HTTPS不勾选。备注:请一定选择“空”模板

image

创建成功之后,如果下图

image

使用Nuget工具添加“NuGet.Server”包,添加成功之后会自动生成如下文件

image

打开Web.config

因为我们的框架是.NET Framework框架是4.7.2版本,所以注释掉下面的4.6版本的compilation节点

image

在appSettings下面,主要的配置:requireApiKey,apiKey和packagesPath。他们都有注释相信大家一看就知道

image

然后我们就可以对“PFT.NugetServer”直接发布,并发布到本地的IIS,发布成功之后浏览网站如图所示:

image

三、NuGet程序包的制作和发布

可以利用开发用具“Visual Studio”和“NuGet Package Explorer”实现打包。

3.1、Visual Studio打包和发包教程

在解决方案“PFTNugetSystem”,创建一个“PFT.TestPackage”的类库,然后添加一个“PackageHelper.cs”,添加如下方法

public string GetPackageName(string name)
        {
            return $"名称{name}";
        }

然后打开项目“PFT.TestPackage”的属性,选择“打包”

image

根据实际情况填写相关信息。如果项目里面引用了其他的包,比如“Newtonsoft.Json”,它会自动生成依赖条件。

然后选择“打包”

1568366923(1)

在输入栏得到打包的地址,就可以得到包文件“PFT.TestPackage.1.0.0.nupkg”。

image

 

下载NuGet Package Explorer工具,下载地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases  image

下载之后解压运行“NuGetPackageExplorer.exe”文件image

选择打开本地包image,选择我们生成的包,image

然后选择file=》publish。发布成功之后,会提示“Package published successfully”

image

然后在Visual Studio工具=》选项=》Nuget包管理 添加本地解析路径

image

打开管理解决方案的Nuget程序包,选择本地程序包源

image

 

3.2、NuGet Package Explorer工具打包教程

打开NuGetPackageExplorer工具,然后选择创建新包image

将生成的dll文件拖进“Package contents”中image,点击左上角的第一个按钮,编辑包信息,这里为了与Visual Studio生成包有区别,这里我们将包的版本设置为1.0.2,描述改成“Nuget服务器测试包(NuGetPackageExplorer)”

image

如果对其他的包有依赖关系,就在下面这个位置 image添加依赖包。

点击“Edit dependencies”,image

选择“Newtonsoft.Json”image,

依次点击加号和okimage

 

 

确定之后image

发布如上

最后的效果

image

三、总结

经过上面的的过程,我们就可以在搭建的Nuget私服上面愉快的玩耍了。

在处理Nuget私服时,还要注意一个问题,就是Nuget.Config,路径是%appdata%\NuGet\NuGet.Config,内容如下

image

NugetServer会区分版本,protocolVersion就表示的版本号,V3版本支持json格式,也就是前面地址展现的内容,V2版本支持xml格式,而我们搭建的是V2版本。主要是在自动化部署的时候,如果配置不正确,依赖包会还原失败。

转载于:https://www.cnblogs.com/snailblog/p/11517738.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CL10011314155/article/details/101934531

智能推荐

iOS给应用添加支持的文件类型/根据文件类型打开应用_ios documenttypes_HiroGuo的博客-程序员秘密

iOS给应用添加支持的文件类型/根据文件类型打开应用之前写过类似的文章 IOS UTI(统一类型标识符) 根据文件后缀打开APP 和 自定义UTI 注册你的APP所支持的文件类型 这里 再次总结说明。已经存在的UTL类型苹果官方文档提供了常见情况下,所支持的UTL类型 【链接】如何添加已经存在的类型在Xcode中选择TARGES----> Info 添加 Document type...

serverless_serverless 框架_killingwill的博客-程序员秘密

参考书目:1.《深入浅出Serverless技术原理与应用》----陈耿2.《Serverless架构》----Cagatay Gurturk3.《AWS IN ACTION》----Andreas Witting,Michael Witting4.《Spring Microservices IN ACTION》----John Carnell1.云计算基础2.serverless原...

cdecl、stdcall、fastcall、declspec 、extern "c"_delphi export; stdcall fastcall_limenglandon的博客-程序员秘密

首先这三个修饰符是c和c++调用约定调用约定(Calling convention)决定以下内容:函数参数的压栈顺序,由调用者还是被调用者把参数弹出栈,以及产生函数修饰名的方法。MFC支持以下调用约定:     __cdecl,__stdcal和__fastcalll都是函数调用规范,规定了参数出入栈的顺序和方法,如果只用VC编程的话可以不用关心,但是要在C++和Pascal等其他语言

Unity NavMesh 判断路径是否可达和路径长度计算_WangHaoDiablo的博客-程序员秘密

Unity NavMesh 判断路径是否可达和路径长度计算最近我的独立游戏已经接近尾声,估计过一段时间就将要上架Steam了,还是有点小兴奋。希望大家能够多多支持:)在设计人物移动的时候,我遇到一个问题,如图:像这种高底层的寻路情况,如果道路被挡上,当我点击人物的时候,人物会直接跑到地下部分X的正下方。这是因为Unity默认寻路对这种上下分层的寻路规则是,寻找一个垂直方向的接近点。这不是我想要的效果,像这种情况出现的时候,我希望能直接提示玩家,目标不可达,查了一下Uni...

qe和qc的区别在哪里_QC, QE,QA,QO的具体定义是什么,工厂里面个岗位具体职能又是?..._巧巧妹妹的博客-程序员秘密

题主有点懒。先名词解释以下:QC\QE\QA 吧。QO不知道是什么鬼,有知道的烦请告知一下。QC:Quality Control 质量控制。其中QC又分以下几种:FQC:即最终品质管控,是在产品完成所有制程或工序,对于产品的品质状况进行检验。IQC:即来料品质管控,是对采购进来的素材或产品做品质确认,减少质量成本,达到有效控制。IPQC:即制程品质管控,是在产品从生产到包装过程中进行品质管控,也称...

最小生成树(最小支撑树)算法_土豆同学的博客-程序员秘密

\qquad在上篇文章中,我介绍了网络模型中的一些相关概念,在这篇文章,我将介绍网络模型中的最小生成树算法,又叫最小支撑树算法。最小生成树(最小支撑树)算法0 原理        最小生成树算法的作用是连接一个网络的所有节点,使树上边的总长度达到最小。两个例子:需要在几个城镇之间修路,使得任意两个城镇都有路相连,中间可以穿过一个或者多个其他城镇,这时需要一个修路方案使修路的里程最小。某海湾上需要设计一个海面上的天

随便推点

python经典100例答案pdf-Python 入门 100 案例,PDF免费下载_weixin_37988176的博客-程序员秘密

原标题:Python 入门 100 案例,PDF免费下载大家好,我是振哥。在过去一年多时间,我先后打磨了几个Python类开源教程。所有教程力求通俗易懂,有趣,并结合一个一个的小例子、小案例讲解,让读者快速入门,并完成进阶。我从中选取几个经典的、读者反响强烈的教程,一起打包,现在倾情奉献给各位读者朋友。1 60页《Python 之路.pdf》,都是干货!经过几个月的整理和总结,产出的《Python...

java中break与continue的区别_java010的博客-程序员秘密

简单地说,比如这样一个程序: for(...) { ... continue/break; ... } System.out.prinln("a"); continue表示立即去执行“for(...)”这行代码,break表示立即去执行“System.out.prinln("a");”这行代码。我随手写了一段程序,看看可能能帮助你理解。 public class BreakTest { publi

sql课程设计-小型超市进销存管理系统_小型sql数据库进销存_KetchupZ的博客-程序员秘密

Py文件分下面几个supermarketmanage.py ,负责软件的开始界面和调用其他几个人员界面basic.py ,负责软件与数据库交流的函数,提供软件与数据库所需的基本查询、修改、删除等功能frontdesk.py ,售货员的前台界面以及功能purchasemanage.py ,进货员的前台界面以及功能adminmanage.py ,管理员的前台界面以及功能...

pom.xml-project object model项目对象模型 讲解_iteye_1865的博客-程序员秘密

1.对象模型讲解 - http://blog.csdn.net/foxhlc/article/details/8724755 2.maven常用命令:http://www.cnblogs.com/adolfmc/archive/2012/07/31/2616908.html 3. Maven Project可以理解为父工程。    Maven Module可以理解为子工程。  ...

JLink的JTag和SWD模式引脚定义_jlink引脚定义_Owen_SYC的博客-程序员秘密

1、SWD模式第15脚可接可不接(有问题再接)2、SWD模式第1脚VCC由目标板提供参考电压,若目标板MCU电压与SWD第2脚电压相同,则可以将1脚与2脚短接,实现3线式SWD...

推荐文章

热门文章

相关标签