搭建Nuget服务器(Nuget私服)

时间:2022-12-09 08:28:03

一、前言

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

二、搭建Nuget私服

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

创建成功之后,如果下图

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

打开Web.config

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

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

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

3.1、Visual Studio打包和发包教程

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

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

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

搭建Nuget服务器(Nuget私服)

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

然后选择“打包”

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

下载NuGet Package Explorer工具,下载地址:https://github.com/NuGetPackageExplorer/NuGetPackageExplorer/releases  搭建Nuget服务器(Nuget私服)

下载之后解压运行“NuGetPackageExplorer.exe”文件搭建Nuget服务器(Nuget私服)

选择打开本地包搭建Nuget服务器(Nuget私服),选择我们生成的包,搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

3.2、NuGet Package Explorer工具打包教程

打开NuGetPackageExplorer工具,然后选择创建新包搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)

如果对其他的包有依赖关系,就在下面这个位置 搭建Nuget服务器(Nuget私服)添加依赖包。

点击“Edit dependencies”,搭建Nuget服务器(Nuget私服)

选择“Newtonsoft.Json”搭建Nuget服务器(Nuget私服),

依次点击加号和ok搭建Nuget服务器(Nuget私服)

确定之后搭建Nuget服务器(Nuget私服)

发布如上

最后的效果

搭建Nuget服务器(Nuget私服)

三、总结

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

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

搭建Nuget服务器(Nuget私服)

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

搭建Nuget服务器(Nuget私服)的更多相关文章

  1. 如何内网搭建NuGet服务器

    NuGet 是.NET程序员熟知的给.NET项目自动配置安装library的工具,它可以直接安装开源社区中的各个公用组件,可以说是非常方便.不过,有些时候,公司内部的公用的基础类库,各个项目都有引用, ...

  2. 【转】如何内网搭建NuGet服务器

    原文:http://www.cnblogs.com/zhangweizhong/p/7755332.html NuGet 是.NET程序员熟知的工具,它可以直接安装开源社区中的各个公用组件,可以说是非 ...

  3. 图解NuGet服务器搭建和使用过程

    听语音 浏览:0 | 更新:2017-10-31 09:13 | 标签:服务器 1 2 3 4 5 6 7 分步阅读 本篇经验将和大家介绍内网搭建NuGet服务器的步骤,希望对大家的工作和学习有所帮助 ...

  4. 通过ProGet搭建一个内部的Nuget服务器

    .NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...

  5. 用ProGet搭建内部的NuGet服务器

    最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功,服务器上就是没有.懶得再去排查这个问题,早就想换掉这个过于简陋的NuGet服务器,借此机会直接弃旧迎 ...

  6. 搭建自己的Nuget服务器

    序言 你们公司有没有好多项目,有没有好多类库,你们的类库是在tfs中管理,还是svn或者github,又或者是各自为政版本类库随意使用? 那么你们使用者写类库的时候方便吗? 有没有更新下载,版本不一致 ...

  7. NuGet学习笔记3——搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

  8. 用ProGet搭建内部的NuGet服务器(更新安装步骤)

    以下是转自dudu的文章,但是我发觉时间的问题,他的安装方法已经不适用了,所以这里我更新了安装方法: 最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功 ...

  9. NuGet学习笔记(3) 搭建属于自己的NuGet服务器

    文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重 ...

随机推荐

  1. ListView和Adapter的配合使用以及Adapter的重写

    ListView和Adapter的使用   首先介绍一下ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来.一般而言,一个ListView由以下三个元素组成: ...

  2. 【Java学习笔记】Map借口的子接口----HashMap

    存储在HashMap集合中的元素,必须覆盖hashCode和equals方法(与HashSet类似)   import java.util.HashMap; import java.util.Iter ...

  3. ios开发者到真机测试

    ios就是矫情, 没事搞那么多步奏, 搞得我都不会弄了, 不懈努力后还是弄好了, 总结一下, 避免新人走弯路. 苹果的脾气就是这样, 只能慢慢学了 1.  生成CSR (开发者证书认证请求) 打开钥匙 ...

  4. 4. 在Inspector面板中显示类中变量+ 拓展编辑器

    1. C#脚本如下: using UnityEngine; using System.Collections; public class MyTest : MonoBehaviour { ; ; [S ...

  5. java多线程创建-Thread,Runnable,callable和threadpool

    java创建多线程的方式有许多种,这里简要做个梳理 1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程.示例代码如 ...

  6. 对于ArrayList中的泛型进行分析

    package cn.lonecloud.reflect; import java.lang.reflect.Method; import java.util.ArrayList; public cl ...

  7. Jquery判断单选框是否选中和获取选中的值

    第一种:利用选中值判断选中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...

  8. 常见的web攻击手段

    XSS:跨站脚本攻击 -典型实例为: 当用户在表达输入一段数据后,提交给服务端进行持久化.如果此用户输入的是一段脚本语言,而服务端 用户输入的数据没有经过转码.校验等就存入了数据库,在其他页面需要展示 ...

  9. 新建 ASP&period;NET MVC 项目快速代码

    视图模型- PagingInfo 类: public class PagingInfo { public int TotalItems { get; set; } public int ItemsPe ...

  10. efcore操作mysql&comma;出现System&period;InvalidOperationException&colon;&OpenCurlyDoubleQuote;No coercion operator is defined between types &&num;39&semi;System&period;Int16&&num;39&semi; and &&num;39&semi;System&period;Boolean&&num;39&semi;&period;”

    这个恶心的问题,只需要把EF的依赖换成 Pomelo.EntityFrameworkCore.MySql 库即可解决