示例:在Nuget发布自己的包的步骤
一、目的:很多时候都在用第三方的Nuget包,现成的轮子可以减少很多工作量,同时我们也可以造轮子供自己和其他人使用,本示例主要演示如何发布dll到Nuget上
二、环境:
Win10、VS2019、nuget.exe、nuget.org 帐户
三、步骤:
1、创建nuget.org 帐户
2、下载nuget.exe
下载地址:https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
将nuget.exe 设置系统环境变量,方便使用命令,也可以不设置,不设置则要使用全路径
3、创建一个程序集
设置程序集描述信息,这些会生成在nuget包中
-
// 有关程序集的一般信息由以下
-
// 控制。更改这些特性值可修改
-
// 与程序集关联的信息。
-
[assembly: AssemblyTitle("我的标题")]
-
[assembly: AssemblyDescription("我的说明")]
-
[assembly: AssemblyConfiguration("")]
-
[assembly: AssemblyCompany("我的公司")]
-
[assembly: AssemblyProduct("我的产品")]
-
[assembly: AssemblyCopyright("Copyright © 2019")]
-
[assembly: AssemblyTrademark("")]
-
[assembly: AssemblyCulture("")]
-
-
// 将 ComVisible 设置为 false 会使此程序集中的类型
-
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
-
//请将此类型的 ComVisible 特性设置为 true。
-
[assembly: ComVisible(false)]
-
-
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
-
[assembly: Guid("70dabedf-1206-4a25-a55a-d54ec5ec14a5")]
-
-
// 程序集的版本信息由下列四个值组成:
-
//
-
// 主版本
-
// 次版本
-
// 生成号
-
// 修订号
-
//
-
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
-
//通过使用 "*",如下所示:
-
// [assembly: AssemblyVersion("1.0.*")]
-
[assembly: AssemblyVersion("1.0.0.0")]
-
[assembly: AssemblyFileVersion("1.0.0.0")]
确保修改后重新生成程序集
4、生成nuget清单文件(.nuspec )
主要通过三个命令:nuget spec、nuget pack、nuget push
在解决方案.csject目录下执行cmd命令 nuget spec
示例:
C:\Users\Hebiangu\source\repos\hebiangu.nugettest\hebiangu.nugettest>nuget spec
已成功创建“hebiangu.nugettest.nuspec”。
此时,在同级目录下生成了一个清单文件,内容如下:
-
<?xml version="1.0"?>
-
<package >
-
<metadata>
-
<id>$id$</id>
-
<version>$version$</version>
-
<title>$title$</title>
-
<authors>$author$</authors>
-
<owners>$author$</owners>
-
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
-
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
-
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
-
<requireLicenseAcceptance>false</requireLicenseAcceptance>
-
<description>$description$</description>
-
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
-
<copyright>Copyright 2019</copyright>
-
<tags>Tag1 Tag2</tags>
-
</metadata>
-
</package>
5、执行打包命令,生成.nupkg文件
在解决方案.csject目录下执行cmd命令 nuget pack
示例:
C:\Users\HeBianGu\source\repos\hebiangu.nugettest\hebiangu.nugettest>nuget pack
正在尝试从“hebiangu.nugettest.csproj”生成程序包。
MSBuild auto-detection: using msbuild version '16.0.462.64354' from 'D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin'.
正在打包“C:\Users\HeBianGu\source\repos\hebiangu.nugettest\hebiangu.nugettest\bin\Debug”中的文件。
正在对元数据使用“hebiangu.nugettest.nuspec”。
Successfully created package 'C:\Users\HeBianGu\source\repos\hebiangu.nugettest\hebiangu.nugettest\hebiangu.nugettest.1.0.0.nupkg'.
此时在同级目录下会生成一个.nupkg文件,此时打包任务已经完成
6、上传发布Nuget包
首先、获取密钥:登录nuget.org 帐户,在右上角下拉菜单中找到API Key,点击Create创建一个密钥,输入Key Name,输入Glob Pattern 为 *,点击创建,完后点击Copy复制密钥 如: oy2lfjcetwxsiutysnje9867c5s83hnf6aj5q,注意需要自己保存密钥
其次、上传包
在同级目录执行如下命令即可
nuget push hebiangu.nugettest.1.0.0.nupkg oy2lfjcetwxsiutysnje9867c5s83hnf6aj5q -Source https://api.nuget.org/v3/index.json
hebiangu.nugettest.1.0.0.nupkg :是打包最终生成的.nupkg文件
oy2lfjcetwxsiutysnje9867c5s83hnf6aj5q:是产品密钥,产品密钥需要在注册nuget.org 帐户
示例:
C:\Users\HeBianGu\source\repos\hebiangu.nugettest\hebiangu.nugettest>nuget push hebiangu.nugettest.1.0.0.nupkg oy2lfjcetwxsiutysnje9867c5s83hnf6aj5q -Source https://api.nuget.org/v3/index.json
Pushing hebiangu.nugettest.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
警告: <licenseUrl> element will be deprecated,please consider switching to specifying the license in the package. Learn more: https://aka.ms/deprecateLicenseUrl.
Created https://www.nuget.org/api/v2/package/ 1831ms
Your package was pushed.
以上就是发布的全部过程
注意:
1、创建的 hebiangu.nugettest.1.0.0 名称不能和服务器上已有的包名重复,否则会报403错误,检查方式是到nuget上搜索一下有没有该名称的包
2、上传的包会通过审查,需要等一段时间大概一个小时以内才能搜索到
3、创建一个批处理文件一键发布
创建文件:nuget-push.bat
文件内容如下,将批处理文件放到程序集目录下执行即可一键发布:
cd %~dp0
nuget spec
nuget pack
nuget push hebiangu.nugettest.1.0.0.nupkg oy2leteteymeerertetedc3aufgfool4is6aj5q -Source https://api.nuget.org/v3/index.json
pause
此时在nuget.org和VS中可以搜索并应用自己的包了


示例:在Nuget发布自己的包的步骤的更多相关文章
- 工具 在 Nuget 发布自己的包
MSDN : https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-visual-s ...
- 使用NuGet发布自己的类库包(Library Package)
STEP 1:注册并获取API Key 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了. STEP 2:下载NuGe ...
- [Visual Studio] NuGet发布自定义包(Library Package)
源文章:dax.net http://www.cnblogs.com/daxnet/archive/2013/05/07/3064577.html 使用NuGet发布自己的类库包(Library Pa ...
- 使用NuGet发布自己的.NET NuGet 包( .NET Standard & Windows)
发布自己的nuget包 STEP 1:获取API Key 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,或者是自建服务器上生成一个API Key( ...
- 使用Nuget发布自己的类库包
NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些V ...
- 使用NUget发布自己的dll(转)
一:Nuget控制台有几个常用命令 Get-Package 获取当前项目已经安装的类库 Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,示例:PM ...
- 使用NUget发布自己的dll
一:Nuget控制台有几个常用命令 Get-Package 获取当前项目已经安装的类库 Install-Package 安装指定类库,命令格式如下:Install-Package 类库ID,示例:PM ...
- NuGet 发布
其实吧,我并没有用到nuget发布,但是在做项目的过程中,我需要别的系统给我接口,所有吧,人家就发 布了了一个nuget程序集,而我呢,就引用了一下,然后就可以用了,又不吧,本人小编好奇心比较重,所以 ...
- 手把手教你发布一个Python包
本文主题如下: 编写一个包(Python 源代码),但不是本文的重点. 编译包,观察编译后的文件. 发布包,发布的包可以有多种类型. 如何在 Pypi 中查看已发布的包 注意: 本文编写的包在 Pyt ...
随机推荐
- Linux搭建邮件服务器Postfix+Dovecot+MySQL+PHP
用于搭建的服务器信息 阿里云 Centos 6.5 32位 安装过程1.安装Postfix 版本(2:2.6.6-8.el6) yum -y install postfix 安装完成还需要替换系统自带 ...
- Java 为什么需要包装类,如何使用包装类?
出处:https://cloud.tencent.com/developer/article/1362754
- wordpress调用指定类型post_type的文章
wordpress很强大,可以添加多种post_type文章类型,假如我们要调用product产品模型的文章要如何操作呢?随ytkah一起来看看吧.我们用'post_type' => 'prod ...
- 常用dos命令(1)
[ 文件夹管理 ] cd 显示当前目录名或改变当前目录. md 创建目录. rd 删除一个目录. dir 显示目录中的文件和子目录列表. tree 以图形显示驱动器或路径的文件夹结构. path 为可 ...
- unzip命令(转)
unzip命令用于解压缩由zip命令压缩的“.zip”压缩包. 语法 unzip(选项)(参数) 选项 -c:将解压缩的结果显示到屏幕上,并对字符做适当的转换: -f:更新现有的文件: -l:显示压缩 ...
- 二分查找java实现
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 二分查找思路非常简单,由粗暴的遍历查找改为 ...
- ESA2GJK1DH1K基础篇: 测试APP扫描Air202上面的二维码绑定通过MQTT控制设备(兼容SIM800)
前言 此程序兼容SIM800 如果想绑定SIM800,请把其IMEI号,生成二维码,用手机APP扫描. 实现功能概要 APP通过扫描二维码获取GPRS设备的IMEI号,然后设置订阅的主题:device ...
- PATB1002写出这个数
参考代码: #include<cstdio> #include<cstring> #include<cstdlib> int main() { char str[1 ...
- Vue实践TS中的一些常见错误解决方案
mixin报错 import { Component, Prop, Vue ,Mixins} from 'vue-property-decorator' import httpminix from ' ...
- ROS+gre over ipv6,在ipv6的基础上建立GRE隧道
感谢群众大神 @镜花水月全程技术支持.感谢! 环境: 1.阿里云华北5,申请ipv6测试,申请ECS带ipv6公网ip 2.为了便于测试便捷,在vultr创建2.5美元的vps,带ipv6 对了,测试 ...