NuGet -- 如何创建及发布自己的程序包
2015-03-31 11:21
573 查看
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版本:
全部设置好以后,编译整个项目待用。
STEP 5:产生并修改nuspec
nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。在命令提示符下,进入AC.Core.csproj文件所在目录,然后执行:
此时会提示创建成功:
用editplus打开AC.Core.nuspec文件,把需要替换的信息替换掉,不需要的tag全部删掉,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换。完成编辑后,我们的nuspec文件如下:
注意两点: 1、$description$使用AssemblyDescriptionAttribute的值进行替换,在产生package之前,一定要记得先编译项目,否则会提示$description$找不到的错误; 2、releaseNotes如果没有,就直接删掉这个节点,如果有,则填入自己的内容,不要使用默认内容,否则会在下一步产生警告信息。
STEP 6:产生类库包(Library Package)
同样在AC.Core.csproj路径下,使用下面的命令产生NuGet类库包:
成功后,提示:
注意:由于我们的项目通过NuGet引用了Common.Logging,因此,它将会作为一个依赖组件(dependency)打包到产生的nupkg文件中。 另外,NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令:
如果此项目引用了解决方案中的其他项目,那么你可以把引用的其他项目作为此程序包的一部分发布,也可以通过使用IncludeReferencedProjects参数来作为依赖项发布。
STEP 7:发布类库包
现在,通过以下命令发布类库包:
完成以后,出现以下提示:
STEP 8:测试已发布的类库包 通过UI或者命令来查找一下。
STEP 9:更新类库包
随着类库开发进度不断向前,必然会有版本更新。更新类库包很简单,只需要在AssemblyInfo.cs中更新一下版本号,然后重新执行上面的STEP 6、7即可。注意在执行STEP 7的时候,nupkg的文件名应该使用新版本的文件名。
参考资料: 官网资料:http://docs.nuget.org/Create/Creating-and-Publishing-a-Package
首先,你需要在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> |
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:测试已发布的类库包 通过UI或者命令来查找一下。
STEP 9:更新类库包
随着类库开发进度不断向前,必然会有版本更新。更新类库包很简单,只需要在AssemblyInfo.cs中更新一下版本号,然后重新执行上面的STEP 6、7即可。注意在执行STEP 7的时候,nupkg的文件名应该使用新版本的文件名。
参考资料: 官网资料:http://docs.nuget.org/Create/Creating-and-Publishing-a-Package
相关文章推荐
- 【Composer】如何创建并发布一个自己的包
- 如何创建自己的wiki-Dokuwiki
- 如何建立自己的新闻发布系统?
- 如何利用Visual Studio创建自己的模板
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- 如何发布自己的.NET程序
- 如何创建和发布Web Service
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- 手把手一步一教你如何利用Visual Studio创建自己的模板
- 【分享】如何创建自己的Visual Studio 2005/2008配色
- 用PHP程序包创建自己的RSS客户端
- 如何把hibernate+jndi+tomcat发布自己的web应用
- 如何知道当前自己创建了什么表?如何知道表的结构?
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- VC2005下如何发布自己的程序。
- 如何创建自己的Linq provider (实现IQueryable)(翻译)
- 如何利用C++ Builder 5.0 Enterprise 创建用户自己的网上聊天程序
- 如何创建自己的Visual Studio 2005/2008配色