什么是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/
如果已经有登陆的,那么就选择
获取APIKey
建立完成以后,这个下面有个Copy的按钮,点击可以获取到ApiKey
Step2:下载NuGet.exe,配置命令行工具
下载地址:http://nuget.codeplex.com/downloads/get/669083
配置本地电脑环境变量Path路径:
右键我的电脑---->属性---->高级系统设置
配置完成后,使用Win+R键,输入cmd,点击回车,进入命令行
输入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:开发自己的类库
源码:
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会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令
1 //生成类库包 2 nuget pack .\ML.Common.SDK.csproj -Prop Configuration=Release
Step8:发布类库包到Nuget.org
通过以下命令发布:
1 //发布类库包 2 nuget push .\ML.Common.SDK.1.0.0.1.nupkg