NuGet -- 如何创建及发布自己的程序包
STEP 1:在NuGet上注册并获取API Key
NuGet有个命令行工具:NuGet.exe,非常好用,不过使用之前需要下载,下载地址:http://nuget.codeplex.com/releases/view/612846。
使用以下命令设置NuGet API Key:nuget setApiKey <my_api_key>,记得把my_api_key替换为 SETP 1中获得的API Key。

SETP 4:开发类库并更改程序集配置
打开AssemblyInfo.cs文件,将assembly的属性设置好,记得再设置一下AssemblyVersion特性,以指定我们类库的版本。目前我们使用1.0.0.0版本:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[assembly: AssemblyTitle("AC.Core")][assembly: AssemblyDescription("wychuan's .net core lib.")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("wychuan")][assembly: AssemblyProduct("AC.Core")][assembly: AssemblyCopyright("Copyright © wychuan 2015")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")][assembly: ComVisible(false)][assembly: Guid("fac8fea2-2803-4382-b145-ed5f660bdc58")][assembly: AssemblyVersion("1.0.0.0")] |
全部设置好以后,编译整个项目待用。
STEP 5:产生并修改nuspec
|
1
|
nuget spec |
此时会提示创建成功:

用editplus打开AC.Core.nuspec文件,把需要替换的信息替换掉,不需要的tag全部删掉,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换。完成编辑后,我们的nuspec文件如下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version="1.0"?> <package > <metadata> <id>$id$</id> <version>$version$</version> <title>$title$</title> <authors>$author$</authors> <owners>$author$</owners> <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0.html</licenseUrl> <projectUrl>http://www.wychuan.com</projectUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>$description$</description> <releaseNotes>my first init release.</releaseNotes> <copyright>Copyright 2015</copyright> </metadata> </package> |
注意两点:
STEP 6:产生类库包(Library Package)
同样在AC.Core.csproj路径下,使用下面的命令产生NuGet类库包:
|
1
|
nuget pack AC.Core.csproj |
成功后,提示:

注意:由于我们的项目通过NuGet引用了Common.Logging,因此,它将会作为一个依赖组件(dependency)打包到产生的nupkg文件中。
另外,NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令:
|
1
|
nuget pack AC.Core.csproj -Prop Configuration=Release |
|
1
|
nuget pack AC.Core.csproj -Prop Configuration=Release -IncludeReferencedProjects |
现在,通过以下命令发布类库包:
|
1
|
nuget push AC.Core.1.0.0.0.nupkg |
完成以后,出现以下提示:

STEP 8:测试已发布的类库包
STEP 9:更新类库包
NuGet -- 如何创建及发布自己的程序包的更多相关文章
- 使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)
转自:http://blog.csdn.net/longerzone/article/details/12705507 一.前言 本文将介绍如何使用autotools生成一个Makefile文件,并在 ...
- 发布你的程序包到Nuget
1.新建一个.NET Standard 的类库项目 2.选择项目熟悉,在 package 栏目下填写我们的nuget包信息 3.选择我们的项目,点击"Pack" 打包 主要注意的是 ...
- .NET Core +NuGet 创建打包发布自己的类库包
1. 创建类库项目 你可以使用现有的 .NET 类库项目用于要打包的代码,或者创建一个简单的项目,.NET CORE 2.1 项目的 类库如下所示: NugetDemo.class using Sys ...
- ROS的初步学习--创建一个工作空间和一个程序包
快速开始 创建工作区(workspace) 工作区可以作为一个独立的项目进行编译,存放ROS程序的源文件.编译文件和执行文件.建立工作区的方法如下: mkdir -p ~/catkin_ws/src ...
- npm学习(十)之如何使用创建、发布、使用作用域包
前言 要求npm版本2或更高 作用域用于将相关包分组在一起,并为npm模块创建一个名称空间(类似于域).这里有更详细的解释. 如果一个包的名称以@开头,那么它就是一个有作用域的包.范围是@和斜杠之间的 ...
- 发布程序包到Nuget
今天想着别人都把自己做的程序包发布到nuget上去开放给别人使用,那么我是否也能这么干呢,于是就研究了一番,发现还真可以,而且非常简单,接下来就介绍下发布自己的程序包到nuget上的方法. 一.创建公 ...
- 用命令行工具创建 NuGet 程序包
NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...
- [强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!)
原文:[强烈推荐]ORACLE PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) [强烈推荐]ORACLE PL/SQL编程详解之七: 程序包的创建与应用(聪明在于学习,天 ...
- ROS工作空间和程序包创建
预备工作后面操作中我们将会用到ros-tutorials程序包,请先安装: $ sudo apt-get install ros-<distro>-ros-tutorials 将 < ...
随机推荐
- 超强的ACM题目类型总结
转:初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ...
- sgu 101 domino
题意还算简洁明了,加上有道翻译凑过着读完了题.题意大体上是 给你 n 个多米诺骨牌, 给出每个骨牌两端的数字, 只有数字相同才可以推到, 比如 2-3和3-2.你可以旋转这些多米诺骨牌, 输出一个可以 ...
- rsync+inotity
rsync默认端口:873xinetd默认服务 inotify参数详解inotifywait-r:递归-q:只打印事件-m:始终监听事件--excludei:排除--timefmt:时间格式--for ...
- 网页中"IE限制网页访问脚本或ActiveX控件"的提示问题的解决方法
以前从来没有注意过"IE限制网页访问脚本或ActiveX控件"的提示问题,对于这个小细节问题,虽然感觉很别扭,但一直没考虑解决方法,今天才发现该问题可以轻松解决,以下做个小小记录. ...
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...
- ssh自动登录的4种实现方法
ssh自动登录的几种实现方法,记录在此. 1. 自动ssh/scp方法 A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), 假如ip为192.168.60.1 ...
- 最完美解决Nginx部署ThinkPHP项目的办法
网上通用解决方法的配置如下: server { ... location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给T ...
- Ubuntu Vim YouCompleteMe 安装
0. 必要工具安装 sudo apt-get install build-essential cmake 1. 安装 vundle mkdir ~/.vim/bundle git clone http ...
- 【JPA】query新对象 需要 构造函数
构造函数 @Query("select g from Note g where id=?1" ) Note findById(Long id); @Query("sele ...
- 【intellij】异常信息汇总
Application Server was not connected before run configuration stop, reason: javax.management.Instanc ...