Nuget管理自己的项目库
Nuget是什么#
Nuget 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。(官方地址)相信大家对这个应该还是很熟悉的,没有序列化包大家第一时间就是搜索一个辅助包进行引用,大家有没有想过这些帮助包是哪里来的呢? (绝对不是天上掉下来的)
为什么使用Nuget#
- 当我们需要使用序列的时候,如果不使用Nuget中优秀的辅助包,我们就需要自己去实现一个序列话帮助类,这样我们就不能安安心心搬砖了,全部都写帮助类库了,当然我们有现成的轮子直接使用就可以了(自己费老大劲写出来的轮子可能还有bug)。
- 当然我们也不是不能写,我之前负责过一个项目,我们的架构师写了一套核心帮助类,但是没有使用Nuget进行管理,项目的体量就非常非常大了,一个项目27个类库如果我们采用这种方式进行管理话我们项目也会变的更简单。
- 当新项目开始的时候我们也不需要把帮助类库粘贴复制过来了,直接引用项目类库就完事了,简单的让自己飘飘乎。
- 还有Nuget也可以搭建自己的私有帮助类,因为有些公司内部的信息不方便公开,也可以使用这种方案。
怎么使用NuGet#
- 在NuGet官网上注册并获取API Key
- 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key。
- 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key。
- 下载NuGet.exe
- 使用之前,需要先下载NuGet.exe,为了方便使用,设置机器的PATH环境变量,将其NuGet.exe的路径添加到PATH变量中。我放在F:\Program files下,所以路径为F:\Program files。
- 设置API Key
标记 | 源 |
---|---|
程序集名称。 | |
AssemblyTitleAttribute 中指定的程序集标题。 | |
程序集的 AssemblyVersionAttribute 中指定的程序集版本。 | |
AssemblyCompanyAttribute 中指定的公司。 | |
AssemblyDescriptionAttribute 中指定的描述。 |
- 创建程序包
我们在发布之前可以先修改类库的信息
- 如果同一个目录中只有一个项目文件,则在运行命令时可以省略项目文件名称。 nuget pack ProjectName.csproj
- 如果尚未编译项目,可先用 Build 标记编译项目,然后压缩它。 这将在运行 pack 命令之前编译项目。 nuget pack ProjectName.csproj -Build
此命令将生成名为 ProjectName.{version}. nupkg 的文件,其中,{version} 的值与 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程序包将命名为 ProjectName.1.0.0. nupkg。 - 为了方便开发人员安装您的程序包,请考虑使用 Symbols 标记创建带调试器符号的程序包:nuget pack ProjectName.csproj -Build -Symbols除了主程序包之外,此命令还创建符号程序包。 这使安装您的程序包的其他人在调试其应用程序时能够单步执行程序包代码。
- 发布程序包(需要进入.nupkg文件目录中执行)
- 测试以及更新类库包
- 在解决方案中右键解决方案—-管理解决方案的NuGet程序包—-联机,输入自己的类库包名。安装就可以了。然后是更新,更新的时候记得更改的版本号的信息,然后再重新运行一遍下面的cmd
nuget pack *.csproj nuget push *.nupkg
作者:匿名
出处:https://www.cnblogs.com/chenxi001/p/13775838.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架