新闻中心

C#怎么创建 NuGet 包 C#将自己的类库打包成NuGet包并发布

2025-11-09
浏览次数:
返回列表
创建NuGet包需准备类库项目,添加唯一PackageId等元数据,通过dotnet pack生成.nupkg文件,再用dotnet nuget push命令配合API密钥发布至NuGet.org。

c#怎么创建 nuget 包 c#将自己的类库打包成nuget包并发布

创建并发布一个 NuGet 包,是将 C# 类库分享给其他开发者或在多个项目中复用的重要方式。整个过程包括:准备类库项目、添加包元数据、生成包文件(.nupkg)、以及发布到 NuGet.org 或私有源。

1. 准备类库项目

确保你有一个 .NET 类库项目(推荐使用 SDK 风格的 csproj 格式)。如果你还没有,可以用 Visual Studio 或命令行创建:

dotnet new classlib -n MyLibrary

这会生成一个名为 MyLibrary 的类库项目。

2. 添加 NuGet 包元数据

打开 .csproj 文件,在 PropertyGroup 中添加必要的 NuGet 元数据,例如:


  
    net6.0
    MyCompany.MyLibrary
    1.0.0
    YourName
    MyCompany
    A simple library for demonstration.
    demo;utility
    https://github.com/yourname/MyLibrary
    https://github.com/yourname/MyLibrary
    git
    © MyCompany. All rights reserved.
    Initial release.
  

这些字段会在 NuGet.org 上显示。其中 PackageId 必须全局唯一。

3. 生成 NuGet 包 (.nupkg)

在项目目录下运行以下命令生成包:

dotnet pack -c Release

成功后会在 bin/Release 目录下生成一个 .nupkg 文件,比如:MyCompany.MyLibrary.1.0.0.nupkg

易标AI 易标AI

告别低效手工,迎接AI标书新时代!3分钟智能生成,行业唯一具备查重功能,自动避雷废标项

易标AI 135 查看详情 易标AI

4. 发布到 NuGet.org

要发布到公共 NuGet 仓库,你需要:

  • 注册一个账号:访问 nuget.org 并注册
  • 获取 API Key:登录后进入「API Keys」页面,创建一个新的 key,选择包含你包名的模式(如 *),复制该 key

然后使用命令行推送包:

dotnet nuget push MyCompany.MyLibrary.1.0.0.nupkg --api-key YOUR_API_KEY --source https://api.nuget.org/v3/index.json

推送成功后,你的包将在 NuGet.org 上可搜索和安装。

如果以后更新版本,只需修改 .csproj 中的 Version 字段,重新打包并推送即可。

基本上就这些。不复杂但容易忽略细节,比如包名冲突或缺少元数据导致审核警告。建议首次发布前先检查包内容:

# 可用工具查看 .nupkg 内容(本质是 zip 文件) # 解压后检查 lib/、ref/、.dll 和 .xml 文档是否正确包含

以上就是C#怎么创建 NuGet 包 C#将自己的类库打包成NuGet包并发布的详细内容,更多请关注其它相关文章!


# 命令行  # 威海餐饮推广招聘网站  # 服装公众号资源网站推广  # 本地百度seo公司  # 中南建设招标网站  # 企业全年营销推广计划  # 襄阳农业网站推广价格  # 岳阳建设厅网站  # 自己的网站怎样优化  # 兴县定做网站推广联系方式  # 十大免费网站推广下载  # 抽象类  # 目录下  # 还没有  # 如果你  # 如何实现  # c#  # 如何使用  # 会在  # 自己的  # 类库  # .net  # microsoft  # 解压  # ssl  # 工具  # github  # json  # git  # js  # nuget包 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 深入理解J*a编译器的兼容性选项:从-source到--release  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  Win11怎么查看电脑配置_Win11硬件配置检测工具使用  python3时间如何用calendar输出?  C++如何实现单例模式_C++设计模式之线程安全的单例写法  J*aScript动态修改指定div内所有a标签样式指南  12306怎么选座位选到安静区_12306选座安静区域选择策略  BetterDiscord插件中安全更新用户简介的实践指南  京东京造J1和网易云音乐氧气真无线有什么不同_国产电商蓝牙耳机音质对比  Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践  Kafka Streams中基于消息头条件过滤消息的实现指南  j*a toString()的覆盖  qq游戏跨平台入口_qq游戏多设备同步登录  神庙逃亡小游戏在线玩 神庙逃亡小游戏入口  包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址  c++ 命名空间怎么用 c++ namespace使用指南  顺丰国际快递查询 国际件官方查询入口  EMS快递官网app_中国邮政速递物流手机客户端  2026春节假期票务安排_2026春节放假购票指南  天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】  必由学网页版入口 必由学官方平台直接访问  PHP表单数据传递:如何通过隐藏输入字段获取动态ID  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  MongoDB聚合管道:正确匹配对象数组中_id的方法  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  c++中的std::forward_list和std::list有什么不同_c++ forward_list与list区别分析  押井守高度称赞《辐射4》:玩了八年都停不下来!  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】  Pygame教程:解决用户输入与游戏状态更新不同步问题  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】  韩剧圈正版入口页面_韩剧圈官网登录链接  Lar*el递归关系中排除子孙节点的策略  fishbowl官网免费版 fishbowl养鱼网站入口  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  R星幕后开发视频泄露 包含《GTA6》等多款大作  Bilibili动漫最新防封地址发布-Bilibili动漫2025年最稳正版入口推荐  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  顺丰快件物流信息 官方网站查询入口  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  PySpark中高效提取字符串右侧可变长度数字:使用regexp_extract  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】  C#使用XPath查询节点时出错? 常见语法错误与调试技巧  58动漫网在线官方网 58动漫网正版动漫入口网址  内存疯狂猛猛涨价:主板销量直接腰斩!  将HTML Canvas内容转换为可上传的图像文件(File对象) 

搜索