一步一步搭建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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗