什么是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 源地址
使用下面命令进行配置
//配置模拟的push源为nuget.org
nuget config -Set DefaultPushSource=nuget.org
Step4:设置Api Key
使用下面命令进行设置Nuget API Key:
//将下面my_api_key替换为STEP 1中获得的API Key
nuget setApiKey my_api_key
Step5:开发自己的类库
源码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DemoDll
{
public class Demo
{
public string Hello()
{
return "Hello";
}
}
}
打开AssemblyInfo.cs文件,设置属性值
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; // 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("437fac93-d41d-48c4-9e64-dd96c1a0cd8f")] // 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Step6:生成nuspec文件,并修改
在命令提示符下,进入xxxx.csproj文件所在目录,然后执行:
//生成nuspec文件命令
nuget spec
//命令提示行提示
已成功创建“ML.Common.SDK.nuspec”。
使用你习惯使用的文本编辑器打开此文件xxxx.nuspec
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<copyright>Copyright 2018</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
</package>
注意事项:
1.$description$使用AssemblyDescriptionAttribute的值进行替换,在产生package之前,一定要记得先编译项目,否则会提示$description$找不到的错误
2.releaseNotes如果没有,就直接删掉这个节点,如果有,则填入自己的内容,不要使用默认内容,否则会在下一步产生警告信息
3.authors节点与description节点不能删除,否则会报错
Step7:生成类库包(Library Package)
在xxxx.csproj的目录下,执行下面命令生成类库包:
注意:NuGet会使用默认的项目配置所产生的程序集进行打包。如果项目默认是Debug,而你需要用Release打包,则使用下面的命令
//生成类库包
nuget pack .\ML.Common.SDK.csproj -Prop Configuration=Release
Step8:发布类库包到Nuget.org
通过以下命令发布:
//发布类库包
nuget push .\ML.Common.SDK.1.0.0.1.nupkg