前大神反骨仔写了一篇博客指导如何上传自己的Lib到Nuget,但是那个上面使用的是图形化的配置方式,但是Nuget最新的网站上好像不提供Nuget Explorer了,只提供common line的方式,所以在此简述一下如何使用command line的方式来作Nuget相关的工作.
1. 下载Nuget命令行,使用VS中的Nuget只能安装和卸载相关的包但是不能用来创建包,所以还是需要使用Nugetcommand Line来创建和发布包
NuGet CLI只是一个Exe并不是一个安装程序, 所以把它下载到本地以后需要把它添加到环境变量中的PATH中去。
从如下地址下载NuGet CLI
https://dist.nuget.org/index.html
我把exe放到了本地的D:\NuGet目录中,所以在Path中,我添加进入了如下的变量
2. 创建Nuget package 配置文件
使用VS创建一个Classlib的工程,启动powershell,进入带有.csproj的目录。
输入
NuGet spec
为该项目创建一个配置文件
然后使用文本编辑器修改默认配置,例如我的配置文件
这里需要填入的是ID, authors, description , release note,
version是选填,但是如果不填那么每次创建package的时候使用的都是1.0.0.0,如果需要涨版本的话就需要填这里,
注意Version必须填写4个数字的版本,例如1.1.1.0,如果只填入3个数字则是无效的,而且没有错误信息,这点在作package的时候要特别注意
<?xml version="1.0"?>
<package >
<metadata>
<id>jialei.dotnet.ParameterParseUtility</id>
<version>1.1.1.0</version>
<title>ParameterParse</title>
<authors>JiaLei</authors>
<owners>JiaLei</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Awesome application</description>
<releaseNotes>init version.</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>Parameter</tags>
</metadata>
</package>
3. 创建Nuget package
输入
nuget pack ParameterParseUitilty.csproj
这时nuget会自动根据之前的配置文件来生成package
4. 发布Pacakge
要发布package首先要得到API key,这个key在你Nuget的账户管理中可以看到把它直接粘贴过来就可以(当然了你首先要在Nuget上申请一个账户)
然后输入命令
nuget push AppLogger.1.0.0.0.nupkg 47be3377-c434-4c29-8576-af7f6993a54b -Source https://www.nuget.org/api/v2/package