[经验分享]NuGet发布自己的Dll(类库包)

时间:2024-01-18 11:49:08

什么是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发布自己的Dll(类库包)

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

[经验分享]NuGet发布自己的Dll(类库包)

获取APIKey

[经验分享]NuGet发布自己的Dll(类库包)

[经验分享]NuGet发布自己的Dll(类库包)

[经验分享]NuGet发布自己的Dll(类库包)

[经验分享]NuGet发布自己的Dll(类库包)

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

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

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

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

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

[经验分享]NuGet发布自己的Dll(类库包)

[经验分享]NuGet发布自己的Dll(类库包)

[经验分享]NuGet发布自己的Dll(类库包)

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

[经验分享]NuGet发布自己的Dll(类库包)

输入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:开发自己的类库

[经验分享]NuGet发布自己的Dll(类库包)

源码:

 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发布自己的Dll(类库包)

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

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

[经验分享]NuGet发布自己的Dll(类库包)

Step8:发布类库包到Nuget.org

通过以下命令发布:

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

[经验分享]NuGet发布自己的Dll(类库包)