zoukankan      html  css  js  c++  java
  • [经验分享]NuGet发布自己的Dll(类库包)

    什么是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

  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/zhao365845726/p/8855556.html
Copyright © 2011-2022 走看看