一步一步搭建Nuget私服

大致流程:
1. 通过VS创建一个Web空项目,然后通过Nuget引入Nuget.Server(目前最新版3.2.1)。
2. 直接将这个Web项目发布到IIS。
3. 通过nuget.exe打包*.nupkg文件,然后拷贝到IIS对应目录。
4. 在VS的Nuget包管理器中加入私服的地址。
5. 最后就可以像使用nuget.org的包一样引入自己的包了。

搭建Nuget私服

首先通过VS创建一个web空项目,.net版本选择4.6

 

引入Nuget.Server

 

然后就是等待安装过程:

安装完成后:

 最后把这个web项目发布到IIS上面,示例地址:http://127.0.0.1:8003,发布后的首页如下:

发布项目到Nuget

发布到nuget上面需要后缀名为. nupkg的文件,nupkg是nuget的标识后缀,其实就是压缩文件,大家可以把后缀修改为zip就可以解压了。
首先我们需要下载nuget.exe,我们可以单击网页的首页链接下载,这里我们下载的版本是5.1.0

 然后把下载下来的nuget.exe文件拷贝到C:\Windows\System32下

通过项目发布

首先我们肯定要有一个类库项目,然后找到该类库项目文件.csproj目录,在此处打开控制台应用程序,输入如下命令:nuget pack

如果是需要Release发布:nuget pack -Properties Configuration=Release

 这个时候在该目录下就会创建一个.nupkg文件,这个文件就是我们所说的nuget文件。

 


该文件的版本号来源于AssemblyInfo.cs文件

 


通过该项目通过nuget所引用的其它包也会作为新生成这个包的依赖。

通过DLL发布

通过DLL的发布是也非常重要,有时候我们并没有项目源码,只有那个项目的DLL,为了通过nuget管理起来也需要发布到我们的私服,具体的操作步骤如下:
1. 任意地方创建一个目录Nuget
2. 在Nuget目录打开DOS命令窗体
3. 在DOS窗体输入命令:nuget spec

 此时会在该目录创建文件Package.nuspec

4. 将需要打包的DLL文件拷贝到Nuget\lib目录
5. 修改文件Package.nuspec内容

6. 如上,dependencies表示依赖的包,files表示需要打包哪些文件,src表示来源文件,target表示目标目录。

7. 最后还是在Nuget目录执行命令:nuget pack Package.nuspec(Package.nuspec可以省略)
8. 至此,你会发现Nuget目录同样生成了一个nupkg文件。

将nupkg发布到IIS

已经生成的nupkg怎么发布呢,很简单,直接把这个文件拷贝到我们私服的Packages目录下,私服就会自动解压了。

 

引用Nuget私服

前面一系列的操作都是为了使用,那么如何使用了,如上所说,我们默认发布的IIS地址是:http://127.0.0.1:8003。
然后我们打开Visual Studio,找到菜单工具—选项—Nuget包管理器—程序包源

 配置成功之后,我们就可以使用了,如下:

 

关于版本号的引用

 

 

总结
1. 常用命令:nuget pack/nuget spec
2. 如果打包项目提示未找到文件,请先生成项目文件
3.默认DLL文件打包到lib文件夹下面,其它配置文件打包到content文件夹下面

4.IIS的web.config里面的appSettings节点下面有几个配置非常重要

     requireApiKey:是否验证密钥

     apiKey:密钥的值

     allowOverrideExistingPackageOnPush:是否允许覆盖具有相同Id的版本。

5.除了直接把nupkg文件拷贝到服务器之外,还可以通过nuget.exe的命令推送,推送命令是: nuget push Gd.RedisCache.1.0.0.nupkg -Source http://192.168.103.112/Nuget/nuget -ApiKey 123456

6.通过项目生成Nuget包的命令:nuget pack -Properties Configuration=Release

 

本文参考地址:https://www.cnblogs.com/h82258652/p/4898983.html

 

posted @   段江涛IT  阅读(1364)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
页脚HTML代码
点击右上角即可分享
微信分享提示