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