一步一步搭建Nuget私服

时间:2023-12-31 13:40:56

大致流程:
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私服

引入Nuget.Server

一步一步搭建Nuget私服

然后就是等待安装过程:

一步一步搭建Nuget私服

安装完成后:

一步一步搭建Nuget私服

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

一步一步搭建Nuget私服

发布项目到Nuget

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

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

通过项目发布

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

如果是需要Release发布:nuget pack -Properties Configuration=Release
一步一步搭建Nuget私服

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

一步一步搭建Nuget私服

该文件的版本号来源于AssemblyInfo.cs文件
一步一步搭建Nuget私服

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

通过DLL发布

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

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

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

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

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

将nupkg发布到IIS

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

引用Nuget私服

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

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

一步一步搭建Nuget私服

关于版本号的引用

一步一步搭建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