导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    如何在nuget上发布自己软件包

    技术交流
    nuget
    1
    1
    699
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 编辑

      nuget是 C# 的包管理工具。我们自己写的常用的项目可以打包发布上去,这样以后添加依赖就很方便。

      首先需要设置项目的nuspec文件,这个文件用来给软件包添加一些额外信息,展示在nuget上。假如我们的项目叫做UpdaterLib那么就添加UpdaterLib.nuspec文件。下面是文件内容的例子。

      <?xml version="1.0"?>
      <package >
        <metadata>
          <id>Randoms.Updater.UpdaterLib</id>
          <version>$version$</version>
          <title>$title$</title>
          <authors>Randoms</authors>
          <owners>Randoms</owners>
          <licenseUrl>https://opensource.org/licenses/MIT</licenseUrl>
          <projectUrl>https://github.com/BlueWhaleRobot/updater</projectUrl>
          <requireLicenseAcceptance>false</requireLicenseAcceptance>
          <description>A simple software update tool</description>
          <releaseNotes>Use commit message, instead of tags</releaseNotes>
          <copyright>Copyright 2018</copyright>
          <tags></tags>
        </metadata>
      </package>
      

      然后在项目的AssembleInfo文件中设置文件属性

      using System.Reflection;
      using System.Runtime.CompilerServices;
      using System.Runtime.InteropServices;
      
      // 有关程序集的一般信息由以下
      // 控制。更改这些特性值可修改
      // 与程序集关联的信息。
      [assembly: AssemblyTitle("updaterLib")]
      [assembly: AssemblyDescription("A simple software update tool")]
      [assembly: AssemblyConfiguration("")]
      [assembly: AssemblyCompany("Bluewhale Robot")]
      [assembly: AssemblyProduct("updaterLib")]
      [assembly: AssemblyCopyright("Copyright ©  2018")]
      [assembly: AssemblyTrademark("bwbot")]
      [assembly: AssemblyCulture("")]
      
      // 将 ComVisible 设置为 false 会使此程序集中的类型
      //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
      //请将此类型的 ComVisible 特性设置为 true。
      [assembly: ComVisible(false)]
      
      // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
      [assembly: Guid("13b1749f-dbfb-49fb-a6ac-aca7b57ffe35")]
      
      // 程序集的版本信息由下列四个值组成: 
      //
      //      主版本
      //      次版本
      //      生成号
      //      修订号
      //
      // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
      //通过使用 "*",如下所示:
      // [assembly: AssemblyVersion("1.0.*")]
      [assembly: AssemblyVersion("1.0.0.13")]
      [assembly: AssemblyFileVersion("1.0.0.13")]
      
      

      创建完成之后,我们调用nuget pack生成nupkg软件包

      nuget pack .\updaterLib\updaterLib.csproj
      

      后面的参数是你的项目文件路径

      然后注册nuget开发账号,同时生成api key。

      在本地设置api key

       nuget setApiKey oy2igbrx3ql44eepafpjreabyiwqy
      

      发布软件包

      nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
      

      发布成功后就能在自己nuget管理界面看到软件包了。再等一段时间就会自动同步到visual studio的nuget服务器里面。以后添加依赖就可以像正常的nuget软件一样了。

      1 条回复 最后回复 回复 引用 0
      • 1 / 1
      • First post
        Last post
      Copyright © 2015-2023 BlueWhale community