初识NuGet及快速安装使用
NuGet是 Visual Studio的一个扩展,也就是管理程序的包包。
使用NuGet可以替代之前引用DLL文件的方式,如果Nuget库中存在需要的动态库的话。
参考:NuGet学习笔记(1) 初识NuGet及快速安装使用
打包自己的类库至Nuget
1、若是.Net Core平台类库
直接从项目的属性中设置即可打包
2、若是.Net Framework平台类库
首先编写自己的类库项目,然后打包
- 图形化界面方式
1、下载包管理器 NuGetPackageExplorer,(貌似 现在win10才行,所以我选择了命令行方式)顾名思义,包包管理器可以用来创建新的类库包,也可以浏览已经创建好的类库包
2、下载完成后,双击 NuGetPackageExplorer.application 进行安装,
双击NuGet Package Explorer出现启动界面,选择Create a new package(Ctrl+N)创建一个新包
3、选择菜单 Edit > Edit Package Metadata (或者 CTRL + K) 编辑包包信息
这里可以编辑类库包的信息和添加类库、程序集的引用解释下几个比较重要的字段
Id:用于定位类库包的唯一标示,如在命令行下执行 Install-Package MyPackage 这里的MyPackage就是包包的Id值
Version:类库的版本号,这里建议和程序集的真实版本号保持一致,以免发生混淆
Dependencies:此类库依赖的程序集,根据实际情况添加依赖类库的Id和版本号,若无留空即可,这里需要注意下填写的依赖类库需要在NuGet服务器上能找到,否则无法完成自动引用添加
Framework assemblies:依赖的Framework 程序集,根据实际需要选择即可,一般无需设置
除以上四项以外其他属性根据实际情况修改即可,若自己用不修改也中,不过为了使用方便还是建议把类库描述(Description)填写下
4、编辑好包包信息后接下来添加DLL到包包中
可以选择 右键-->Add Existinng File... 选择dll添加,也可以直接拖拽DLL到 Package contents 窗口,此例选择拖拽方式
直接拖拽dll到窗口后,会出现提示:是否将 Winista.HtmlParser.dll放到lib 文件夹下,一般我们选择是
5、信息修改和dll都添加完毕后,选择File --> Save(或Ctrl + S)将文件进行保存,默认文件名为Id + 版本号.nupkg
6、完成保存后如需要发布到网上,选择File--> Publish...(或Ctrl + P)
默认的发布地址是官网,发布 Key需要到官网去注册一个账号,然后就可以得到,这里不在复述,若无需发布直接关闭即可
参考:NuGet学习笔记(2) 使用图形化界面打包自己的类库
- 命令行方式
打包一个类库,并发布到官网。在开始之前需要在www.nuget.org上注册一个账号,下载最新版本的nuget命令行工具https://dist.nuget.org/win-x86-commandline/latest/nuget.exe【官网上下载】,只是一个exe文件,直接添加到环境变量中。
1.修改项目程序集信息AssemblyInfo.cs
using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的一般信息由以下 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 [assembly: AssemblyTitle("SY.Filer")] [assembly: AssemblyDescription("文件操作帮助类,可以快速运用需要文件操作的应用中")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("SY")] [assembly: AssemblyProduct("SY.Filer")] [assembly: AssemblyCopyright("Copyright © Microsoft 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 会使此程序集中的类型 //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 //请将此类型的 ComVisible 特性设置为 true。 [assembly: ComVisible(false)] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID [assembly: Guid("62c2e0a8-d1f5-4547-92a0-ba19346883a4")] // 程序集的版本信息由下列四个值组成: // // 主版本 // 次版本 // 生成号 // 修订号 // // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 //通过使用 "*",如下所示: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")]