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

  • 相关阅读:
    关于Animator状态在运行时的正负方向播放
    测试-Animator的“当前剪辑CurrentAnimatorStateInfo”
    关于Unity实现游戏录制功能的思考
    关于UI功能解锁,UI特效动画,UI tips的再思考
    堆排序
    单元测试时使用Ninject的小问题
    又开一坑,运动图形MoGraph for Unity
    关于AnimationState的测试
    底层设计应该尽量避免泛型
    java8中计算两个日期时间LocalDateTime的时间差,格式化成xx年yy月zz日aa时bb分cc秒
  • 原文地址:https://www.cnblogs.com/zhao365845726/p/8855556.html
Copyright © 2011-2022 走看看