[经验分享]如何发布NuGet包

什么是Nuget

Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便。

详解百科:https://baike.baidu.com/item/NuGet/5296055?fr=aladdin

发布自己的类库包(Library Package)

Step1:在NuGet上注册并获取API Key

官网地址:https://www.nuget.org/

[经验分享]如何发布NuGet包

如果已经有登陆的,那么就选择

[经验分享]如何发布NuGet包

获取APIKey

[经验分享]如何发布NuGet包

[经验分享]如何发布NuGet包

[经验分享]如何发布NuGet包

[经验分享]如何发布NuGet包

建立完成以后,这个下面有个Copy的按钮,点击可以获取到ApiKey

Step2:下载NuGet.exe,配置命令行工具

下载地址:http://nuget.codeplex.com/downloads/get/669083

配置本地电脑环境变量Path路径:

右键我的电脑---->属性---->高级系统设置

[经验分享]如何发布NuGet包

[经验分享]如何发布NuGet包

[经验分享]如何发布NuGet包

配置完成后,使用Win+R键,输入cmd,点击回车,进入命令行

[经验分享]如何发布NuGet包

输入nuget后,显示上图信息,即为配置成功。

Step3:配置全局push 源地址

使用下面命令进行配置

1 //配置模拟的push源为nuget.org
2 nuget config -Set DefaultPushSource=nuget.org

Step4:设置Api Key

使用下面命令进行设置Nuget API Key:

1 //将下面my_api_key替换为STEP 1中获得的API Key
2 nuget setApiKey my_api_key

Step5:开发自己的类库

[经验分享]如何发布NuGet包

源码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace DemoDll
 8 {
 9     public class Demo
10     {
11         public string Hello()
12         {
13             return "Hello";
14         }
15     }
16 }

打开AssemblyInfo.cs文件,设置属性值

 1 using System.Reflection;
 2 using System.Runtime.CompilerServices;
 3 using System.Runtime.InteropServices;
 4 
 5 // 有关程序集的一般信息由以下
 6 // 控制。更改这些特性值可修改
 7 // 与程序集关联的信息。
 8 [assembly: AssemblyTitle("")]
 9 [assembly: AssemblyDescription("")]
10 [assembly: AssemblyConfiguration("")]
11 [assembly: AssemblyCompany("")]
12 [assembly: AssemblyProduct("")]
13 [assembly: AssemblyCopyright("Copyright © 2018")]
14 [assembly: AssemblyTrademark("")]
15 [assembly: AssemblyCulture("")]
16 
17 // 将 ComVisible 设置为 false 会使此程序集中的类型
18 //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19 //请将此类型的 ComVisible 特性设置为 true。
20 [assembly: ComVisible(false)]
21 
22 // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23 [assembly: Guid("437fac93-d41d-48c4-9e64-dd96c1a0cd8f")]
24 
25 // 程序集的版本信息由下列四个值组成: 
26 //
27 //      主版本
28 //      次版本
29 //      生成号
30 //      修订号
31 //
32 // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33 //通过使用 "*",如下所示:
34 // [assembly: AssemblyVersion("1.0.*")]
35 [assembly: AssemblyVersion("1.0.0.0")]
36 [assembly: AssemblyFileVersion("1.0.0.0")]

Step6:生成nuspec文件,并修改

在命令提示符下,进入xxxx.csproj文件所在目录,然后执行:

1 //生成nuspec文件命令
2 nuget spec
1 //命令提示行提示
2 已成功创建“ML.Common.SDK.nuspec”。

使用你习惯使用的文本编辑器打开此文件xxxx.nuspec

 1 <?xml version="1.0"?>
 2 <package >
 3   <metadata>
 4     <id>$id$</id>
 5     <version>$version$</version>
 6     <title>$title$</title>
 7     <authors>$author$</authors>
 8     <owners>$author$</owners>
 9     <requireLicenseAcceptance>false</requireLicenseAcceptance>
10     <description>$description$</description>
11     <copyright>Copyright 2018</copyright>
12     <tags>Tag1 Tag2</tags>
13   </metadata>
14 </package>

注意事项:

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

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

3.authors节点与description节点不能删除,否则会报错

Step7:生成类库包(Library Package)

在xxxx.csproj的目录下,执行下面命令生成类库包:

[经验分享]如何发布NuGet包

注意:NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令

1 //生成类库包
2 nuget pack .\ML.Common.SDK.csproj -Prop Configuration=Release

[经验分享]如何发布NuGet包

Step8:发布类库包到Nuget.org

通过以下命令发布:

1 //发布类库包
2 nuget push .\ML.Common.SDK.1.0.0.1.nupkg

[经验分享]如何发布NuGet包

 

上一篇:[解决方案]未能找到路径“~\bin\roslyn\csc.exe”的一部分


下一篇:Centos使用docker搭建Nexus内网仓库