文档章节

使用 NuGet 管理项目库

极光推送
 极光推送
发布于 2017/01/19 13:14
字数 743
阅读 414
收藏 6

NuGet 简介

NuGet 是一种 Visual Studio 扩展,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。 NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式。

OPC 仅仅是具有某些元数据的 zip 文件的首字母缩写词。 事实上,您可能早已熟悉 OPC,因为 Word 和 Excel 文档正是使用此格式。 如果您取一个 .docx 文件并将文件扩展名改为 .zip,您实际可以打开它并浏览里面的内容。 . nupkg 文件同样如此。

使用 NuGet 管理项目库 :
https://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx

注册 NuGet

注册地址:https://www.nuget.org/
管理地址:https://www.nuget.org/account/Packages
上传地址:https://www.nuget.org/packages/upload

下载和安装 NuGet

下载地址:https://dist.nuget.org/index.html
NuGetPackageExplorer下载地址:
https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

  • 获取 API Key,获取页面:https://www.nuget.org/account
  • 下载 NuGet.exe,将设置机器的 PATH 环境变量,将其 NuGet.exe 的路径添加到 PATH变量中。

  • 设置 API Key,打开 Windows PowerShell,找到 NuGet.exe的路径,然后输入下面的命令:
    nuget setApiKey your-api-key

项目库的设置

  • 在 Properties 下找到 AssemblyInfo.cs。

 

  • 编辑 Title,Description,Version 等内容
    using System.Reflection;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    // 有关程序集的一般信息由以下
    // 控制。更改这些特性值可修改
    // 与程序集关联的信息。
    [assembly: AssemblyTitle("ConsoleApplication60")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("Microsoft")]
    [assembly: AssemblyProduct("ConsoleApplication60")]
    [assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    //将 ComVisible 设置为 false 将使此程序集中的类型
    //对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
    //请将此类型的 ComVisible 特性设置为 true。
    [assembly: ComVisible(false)]
    // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
    [assembly: Guid("d866cf73-5bfd-4e84-855b-79f6d3aae38d")]
    // 程序集的版本信息由下列四个值组成:
    //
    //      主版本
    //      次版本
    //      生成号
    //      修订号
    //
    //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
    // 方法是按如下所示使用“*”: :
    // [assembly: AssemblyVersion("1.0.*")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]

NuGet 发布项目库

  • 进入项目目录,找到 .csproj 文件,例如:cn.jpush.api.csproj
  • 进入 Windows PowerShell命令行,在项目目录中运行
    nuget spec

 

  • 查看生成的 .nuspec 文件,例如:cn.jpush.api.nuspec
  • 生成类库包,在项目目录运行
    nuget pack yourproject.csproj

 

  • 查看生成的 .nupkg文件,例如:cn.jpush.api.1.0.0.0.nupkg
  • 发布类库包,在项目目录运行
    nuget push yourproject.1.0.0.0.nupkg

 

在新项目中使用 NuGet

  • 在项目->引用,右键选择 管理 NuGet 程序包

 

  • 搜索刚才上传的程序包名,即可下载使用。

 

参考资料

Creating and Publishing a Package
https://docs.nuget.org/Create/Creating-and-Publishing-a-Package
NuGet:https://www.nuget.org/
使用 NuGet 管理项目库 :
https://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx
手把手教你用 Nuget 管理自己的项目库:
http://blog.jobbole.com/92150/

作者:不知道自己是谁

© 著作权归作者所有

共有 人打赏支持
极光推送
粉丝 43
博文 202
码字总数 218805
作品 1
深圳
个人站长
私信 提问
[转]给公司搭建Nuget服务

Nuget是什么? 它是一个 Visual Studio 的扩展 ,可以帮助我们方便的引用第三方包(类库,js库,控件库...), 方便的更新引用的第三方包。得到了微软的大力支持,以后有可能这个扩展自动集成...

later_boy
2014/03/06
0
0
我收集的各种公有 NuGet 源

版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/...

walter lv
今天
0
0
使用Nexus搭建私有Nuget仓库

前言   Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.o...

dotNET跨平台
2018/06/25
0
0
自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference

在前段时间我写了一篇迁移 csproj 格式的博客 将 WPF、UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件,不过全过程是手工进行的,而且到最后处理 XAML 问题也非常头...

wpwalter
2018/04/27
0
0
项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)

知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦。(毕竟 nuspec 文件没有 .csproj 和 .targets 文件强大...

wpwalter
2018/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【机器学习PAI实战】—— 玩转人工智能之商品价格预测

摘要: 我们经常思考机器学习,深度学习,以至于人工智能给我们带来什么?在数据相对充足,足够真实的情况下,好的学习模型可以发现事件本身的内在规则,内在联系。我们去除冗余的信息,可以...

zhaowei121
10分钟前
0
0
Spring拓展接口之FactoryBean,我们来看看其源码实现

是什么 FactoryBean的源码比较简单,大家可以细读下其注释,我做了简单的如下翻译 /** * 实现此接口的bean不能用作普通bean。此bean暴露的对象是通过getObject()创建的对象,而不是它自身...

java菜分享
14分钟前
1
0
Pod在多可用区worker节点上的高可用部署

一、 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可用...

阿里云官方博客
20分钟前
0
0
深入理解 Hive 分区分桶 (Inceptor)

分区是hive存放数据的一种方式。将列值作为目录来存放数据,就是一个分区。这样查询时使用分区列进行过滤,只需根据列值直接扫描对应目录下的数据,不扫描其他不关心的分区,快速定位,提高查...

hblt-j
28分钟前
0
0
数据结构

什么是数据结构 1、数据 数据是描述客观世界的数字、字符以及一切能够输入到计算机中,并且能够被计算机程序处理的符号集合。简言之,数据就是计算机加工处理的原料,是信息的载体。 2、数据...

stars永恒
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部