前言
【PS:原文手打,转载说明出处,博客园】
java有Maven,.net有Nuget,概念就不一一阐述了,自己百度。下面直接进入正题开始搭建Nuget服务器
作案工具
- 工具:vs2017,Nuget.exe
- Nuget服务器版本:Nuget 3.1.2(笔者编写时最高版本)
建立Nuget服务器步骤
- 1:打开VS2017,新建Asp.Net Web 空应用程序(.net framework4.6)
- 2:选择工具——》Nuget包管理器——》程序包管理器控制台
- 3:输入 Install-Package NuGet.Server
- 4:Web.config中修改ApiKey的Value值,任意填写(当如果是使用Nuget Package Explorer或者nuget pull命令时需要用到改key值,笔者不用这么麻烦的,所以不做解释)
- 5:右键发布网站,发布至IIS(安装成功)
打包动态库
总的概括流程为
- 生成spec文件
- 使用spec文件生成nupkg文件
- 上传nupkg文件
- 使用VS Nuget
生成、编辑ackage.nuspec
nuget spec
生成的目录在控制台文件夹前缀
编辑Package.nuspec文件
<?xml version="1.0"?>
<package >
<metadata>
<id>包名(动态库名称)</id>
<version>版本号</version>
<authors>作者</authors>
<owners>拥有者(填写作者就是了)</owners>
<licenseUrl>licenseUrl</licenseUrl>
<projectUrl>projectUrl</projectUrl>
<iconUrl>iconUrl</iconUrl>
<requireLicenseAcceptance>需要许可验收(默认false)</requireLicenseAcceptance>
<description>描述</description>
<releaseNotes>没啥作用的感觉?</releaseNotes>
<copyright>Copyright </copyright>
<tags>标签</tags>
<dependencies>
依赖项
<dependency id="SampleDependency" version="1.0" />
</dependencies>
</metadata>
</package>
举栗子
Package.nuspec内容如下(PS:当动态库有依赖项时,则需要dependencies节点,否则不需要,当动态库无依赖.netframework时,可以移除group节点保留内节点)
<?xml version="1.0"?>
<package >
<metadata>
<id>MK.Tool</id>
<version>4.2.111.7</version>
<authors>zhoudemo</authors>
<owners>zhangsan</owners>
<licenseUrl>http://license.zhoudemo.com</licenseUrl>
<projectUrl>http://product.zhoudemo.com</projectUrl>
<iconUrl>http://icon.zhoudemo.com</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>这是一个描述17777</description>
<releaseNotes>这是一个描述2</releaseNotes>
<copyright>Copyright </copyright>
<tags>MK Tool TEST</tags>
<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="Newtonsoft.Json" version="9.0.1" />
</group>
</dependencies>
</metadata>
</package>
生成nupkg文件
复制MK.Tool.4.2.111.7.nupkg文件至服务器Packages目录,NugetServer自动监听,自动解压,所以上面说的用工具上传跟命令上传不做讲述。
结尾送干活
最后的干货,本文使用到的源码地址:点我下载,别怪我,因为博客园不让上传超过10兆的,所以转个1分,嘿嘿。