zoukankan      html  css  js  c++  java
  • 使用dotnet Cli向nuget发布包


    长话短说, 今天分享如何在nuget.org创建并发布.NET Standard package。

    前置

    1. 安装勾选.NET Core开发套件的Visual Studio; 安装dotnet Cli

    从VS2017开始,dotnet Cli已经自动在.NET开发套件中被安装;
    使用SDK-style format(SDK属性)的.NET Standard项目需要dotnet Cli;nuget.exe Cli用于非SDK样式的项目(通常是.NET Framework)。

    1. 创建.NET Standard库项目

    配置package属性

    1. 项目右键,选择属性--->打包
      打包面板只会出现在VSSDK-style项目,典型如.NET Standard或者.NET Core库项目。

    构建时生成Nuget包:顾名思义,除打包命令,构建时也会自动生成nuget包;
    标记:帮助其他人定位你的包,了解包的能力。

    1. 给package设定一个唯一id,并填写其他属性。注意这个package id需要在nuget.org全站唯一,我们建议你使用包前缀名来避免重复,比如: ${UserName}.PackageName

    打包

    1. 将配置改为Release
    2. 右键项目--> 打包

    如果你没有看到打包命令,你的项目可能不是SDk-style风格的项目,这是要使用
    nuget.exe Cli(或者迁移到SDK-style项目,再使用dotnet Cli)。

    1. Visual Studio构建项目并创建.nupkg文件,插看输出窗体,获取包文件的路径。

    发布包

    有了.nupkg文件,你可以从nuget.org获取一个API key(这个Key标记了你这个nuget账户),结合dotnet cli发布包。

    获取API Key

    1. 登陆nuget.org账户
    2. 点击右上角你的账户名字,选择API keys
    3. 创建---> 选择范围--> Push, 在Glob pattern填入*
    4. 一旦生成key,Copy并尽早保存key,这个key将在dotnet Cli命令中用到

    尽快保存你的key,如果你再次返回这个页面,你需要重新生成key并Copy.

    发布包

    转到包含.nupkg文件的目录,执行下面命令

    dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json
    

    显示如下结果:

    info : Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
    info :   PUT https://www.nuget.org/api/v2/package/
    info :   Created https://www.nuget.org/api/v2/package/ 12620ms
    info : Your package was pushed.
    

    推送命令中的错误通常指示问题原因,如:

    • 您可能忘记了更新项目中的版本号,而尝试发布同签名软件包。
    • 您尝试使用主机上已存在的包标记符发布程序包时,也会看到错误:名称“ AppLogger”已经存在。
    Response status code does not indicate success: 403 (The specified API key is invalid,
    has expired, or does not have permission to access the specified package.).
    

    如果您确认使用的是有效API key,则此错误提示不准确,实际错误是命名冲突
    更改程序包标识符,重建项目,重新产生.nupkg文件,然后重试push命令。
    以上便是向nuget发布包的主要过程。

    其他一些包管理的操作,请在nuget包管理中心倒腾

  • 相关阅读:
    Integer to Roman leetcode java
    Reverse Integer leetcode java
    Binary Tree Maximum Path Sum leetcode java
    公司来了一个奇葩需求pppoe client+server+EOIP+vlan
    魔兽数据库-自然
    windows默认dns解析走ipv4而不走ipv6
    ROS支持BCP桥接(基于PPP隧道)
    几款比较好用的电动理发器推荐
    centos 拨号pptp在拨号成功和拨号失败的时候脚本处理!!!非常重要
    ros routeros 脚本命令script
  • 原文地址:https://www.cnblogs.com/JulianHuang/p/13043273.html
Copyright © 2011-2022 走看看