NuGet -- 如何创建及发布自己的程序包

STEP 1:在NuGet上注册并获取API Key   

首先,你需要在NuGet(https://www.nuget.org/)上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了。

SETP 2:下载NuGet.exe

NuGet有个命令行工具:NuGet.exe,非常好用,不过使用之前需要下载,下载地址:http://nuget.codeplex.com/releases/view/612846

笔者把下载的NuGet.exe放到目录:C:\Program Files\nuget中,为了方便使用,添加此路径环境变量,如何添加环境变量,很简单,再此就不作说明了。

STEP 3:设置API Key

使用以下命令设置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

nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。在命令提示符下,进入AC.Core.csproj文件所在目录,然后执行:


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>

注意两点:

1、$description$使用AssemblyDescriptionAttribute的值进行替换,在产生package之前,一定要记得先编译项目,否则会提示$description$找不到的错误;

2、releaseNotes如果没有,就直接删掉这个节点,如果有,则填入自己的内容,不要使用默认内容,否则会在下一步产生警告信息。

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

如果此项目引用了解决方案中的其他项目,那么你可以把引用的其他项目作为此程序包的一部分发布,也可以通过使用IncludeReferencedProjects参数来作为依赖项发布。


1

nuget pack AC.Core.csproj -Prop Configuration=Release -IncludeReferencedProjects

STEP 7:发布类库包

现在,通过以下命令发布类库包:


1

nuget push AC.Core.1.0.0.0.nupkg

完成以后,出现以下提示:

STEP 8:测试已发布的类库包

通过UI或者命令来查找一下。

STEP 9:更新类库包

随着类库开发进度不断向前,必然会有版本更新。更新类库包很简单,只需要在AssemblyInfo.cs中更新一下版本号,然后重新执行上面的STEP 6、7即可。注意在执行STEP 7的时候,nupkg的文件名应该使用新版本的文件名。

参考资料:

官网资料:http://docs.nuget.org/Create/Creating-and-Publishing-a-Package

时间: 2024-08-04 09:57:10

NuGet -- 如何创建及发布自己的程序包的相关文章

使用autotools自动生成Makefile并在此之上使用dh-make生成可发布的deb程序包(详解)

转自:http://blog.csdn.net/longerzone/article/details/12705507 一.前言 本文将介绍如何使用autotools生成一个Makefile文件,并在此基础上使用dh-make和debuild生成一个可发布的deb程序包,这也是我们在Linux下开发应用程序以及想要发布应用程序需要做的. 无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make ins

如何使用npm发布Node.JS程序包

如何使用npm发布Node.JS程序包 Heero.Luo发表于3年前,已被查看5065次 npm是Node.JS的程序包管理器.进行Node.JS开发时,经常使用它安装/卸载程序包.实际上,发布程序包的工作也是由它来完成的. 配置package.json 要打包程序,首先要配好各项设置,这些设置都由程序包根目录下的package.json指定.package.json的内容必须是严格的JSON格式,也就是说: 字符串要用双引号括起来,而不能用单引号: 属性名一定要加双引号: 最后一个属性后千万

创建一个简单的银行程序包.........未完善,待续

2练习1:创建一个简单的银行程序包   练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking.这个测试程序初始化帐户余额,并可执行几种简单的事物处理.最后,该测试程序显示该帐户的最终余额. 1. 创建banking 包 2. 在banking 包下创建Account类.该类必须实现上述UML框图中的模型. 声明一

创建一个简单的银行程序包

创建一个简单的银行程序包   练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking.这个测试程序初始化帐户余额,并可执行几种简单的事物处理.最后,该测试程序显示该帐户的最终余额. 1. 创建banking 包 2. 在banking 包下创建Account类.该类必须实现上述UML框图中的模型. 声明一个私有对象

ROS的初步学习--创建一个工作空间和一个程序包

快速开始 创建工作区(workspace) 工作区可以作为一个独立的项目进行编译,存放ROS程序的源文件.编译文件和执行文件.建立工作区的方法如下: mkdir -p ~/catkin_ws/src #创建文件夹 cd ~/catkin_ws/src #定位到src catkin_init_workspace #对工作空间进行初始化 虽然这时候工作区是空的,但是我们依然可以进行编译: cd ~/catkin_ws/ catkin_make 这时候,会在当前文件夹下生成devel,build这两个

练习1:创建一个简单的银行程序包

package banking; public class Account { private double balance; public Account(double balance) { this.balance=balance; } public double getBalance() { System.out.println("当前余额为:"+balance+"元"); return balance; } public double deposit(dou

IntelliJ IDEA 创建SpringBoot项目报错: 程序包org.springframework.boot不存在

解决方案:在pom.xml配置文件中添加依赖 <dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-aop</artifactId></dependency> 如果添加后依然报错可以重新加载maven包 1. Build-->Rebulid Project 就好了 2. 在项目根目录执行cmd 

发布程序包到Nuget

今天想着别人都把自己做的程序包发布到nuget上去开放给别人使用,那么我是否也能这么干呢,于是就研究了一番,发现还真可以,而且非常简单,接下来就介绍下发布自己的程序包到nuget上的方法. 一.创建公共库demo 1.首先我们来创建一个简单的公用库,里面就一个计算的方法,包括加减乘除,如图 2.可以看到,我创建了一个项目,然后创建一个Caculation类,类里面的方法只有加减乘除,注意,创建项目的时候选择.net standard项目,接下来就是设置一下程序包的信息如图 3.之后,右键项目,选

用命令行工具创建 NuGet 程序包

NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.nuget.org/Create/Enforced-Package-Conventions 基本步骤 使用 nuget spec 命令生成 nuspec 文件 编辑 nuspec 文件,使用 nuget pack 命令打包 从程序集创建程序包 执行以下命令:生成  nuspec 文件: nuget s