新闻中心

.NET怎么创建一个NuGet包并发布_NuGet包创建发布流程

2025-11-09
浏览次数:
返回列表
首先配置项目元数据并启用包生成,接着构建项目产出.nupkg文件,然后注册nuget.org账号获取API Key,使用dotnet nuget push命令发布包,最后通过更新版本号重新发布新版本。

.net怎么创建一个nuget包并发布_nuget包创建发布流程

创建并发布一个 .NET 的 NuGet 包并不复杂,只要掌握基本流程和关键配置。下面是一个清晰、实用的步骤指南,帮助你从零开始打包并发布到 nuget.org。

1. 准备项目并启用包生成

要创建 NuGet 包,首先需要一个类库项目(Class Library)。确保项目格式为 SDK 风格(推荐使用 .NET Standard 或 .NET Core/.NET 5+)。

在项目文件(.csproj)中添加必要的元数据,这些信息会显示在 NuGet 包页面上:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <PackageId>MyCompany.MyLibrary</PackageId>
    <Version>1.0.0</Version>
    <Authors>Your Name</Authors>
    <Company>MyCompany</Company>
    <Description>A short description of your library.</Description>
    <PackageTags>example;utility</PackageTags>
    <PackageProjectUrl>https://github.com/yourname/MyLibrary</PackageProjectUrl>
    <RepositoryUrl>https://github.com/yourname/MyLibrary</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <Copyright>© MyCompany. All rights reserved.</Copyright>
    <PackageReleaseNotes>Initial release.</PackageReleaseNotes>
    <strong><GeneratePackageOnBuild>true</GeneratePackageOnBuild></strong>
  </PropertyGroup>
</Project>

说明:

  • GeneratePackageOnBuild:设置为 true 后,每次构建都会生成 .nupkg 文件,方便测试。
  • TargetFramework:根据兼容性选择 netstandard2.0、net6.0 等。
  • PackageId:必须在 nuget.org 唯一。

2. 构建项目生成 .nupkg 包

保存项目文件后,在命令行运行:

dotnet build

构建成功后,在 bin/Debugbin/Release 目录下会生成 .nupkg 文件。这是你的 NuGet 包。

你可以用 NuGet Package Explorer 打开它,检查内容和元数据是否正确。

3. 注册 nuget.org 账号并获取 API Key

前往 https://www.nuget.org 注册账号(如果还没有)。

登录后,进入“API Keys”页面创建一个新的密钥:

PHPWind 9.0 模板开发 PHPWind 9.0 模板开发

PHPWind(简称:PW,中国国家版权局著作权登记号为:2004SR06082)的使命是让网站更具价值,让更多人从网络中享受便利,以提升生活品质。 PHPWind的两位创始人王学集、林耀纳于2003年发布了PHPWind的前身版本ofstar,并发展成为包含BBS、CMS、博客、SNS等一系列程序的通用型建站软件。至今累计已有超过120万网站使用phpwind,每天还有1000个新增网站,这些

PHPWind 9.0 模板开发 271 查看详情 PHPWind 9.0 模板开发
  • 选择“Create a new API key”
  • Description 填写用途,如“My First Package”
  • Scope 选择“Push new packages”
  • Include package named: 填写你的 PackageId(支持通配符)
  • 点击“Create”生成密钥

复制生成的 API Key(只显示一次,务必保存好)。

4. 使用命令行发布包

在项目目录下运行以下命令推送包:

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

如果一切正常,你会看到“Your package was pushed.”的提示。

稍等几分钟后,就可以在 nuget.org 搜索到你的包了。

5. 更新和重新发布

修改代码后,只需更新项目文件中的 Version 字段(如改为 1.0.1),然后重新构建并推送即可。

注意:nuget.org 不允许覆盖已发布的版本,必须使用新版本号。

基本上就这些。只要配置好项目元数据,生成包和发布都很简单。关键是确保包名唯一、版本递增、API Key 安全保管。

以上就是.NET怎么创建一个NuGet包并发布_NuGet包创建发布流程的详细内容,更多请关注其它相关文章!


# git  # js  # 关键词竞价排名营销案例  # 金华网站建设培训心得  # 长沙谷歌seo哪家好用  # 福州晋安网站推广  # 前端开发网站建设模板  # seo技巧如何做  # 三级营销的推广方法  # 四川全网营销推广加盟  # 邛崃网站如何推广的呢  # 普洱抖音seo  # 序列化  # 这是  # 是一个  # 布包  # 操作指南  # 如何将  # 命令行  # 新和  # 国家版权局  # 创建一个  # .net  # microsoft  # github  # json 


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


相关推荐: 抓大鹅解压小游戏 抓大鹅摸鱼解压入口  AO3官方在线访问地址 Archive of Our Own最新镜像合集  C++ typeid如何获取类型信息_C++ RTTI运行时类型识别用法  J*aScript中在Map循环中检测并处理空数组元素  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略  必由学官方登录入口 必由学教师学生账号快速访问  深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  天眼查怎么看公司融资情况 天眼查企业融资历史查询步骤【攻略】  J*a 递归快速排序中静态变量的状态管理与陷阱  Angular中父组件异步更新子组件复选框状态的实践指南  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  谷歌邮箱网页版官方页面入口 谷歌邮箱网页端快速访问  如何将HTML表格多行数据保存到Google Sheets  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  抖音小游戏合成大西瓜免费秒玩入口链接 抖音小游戏热门合集秒玩网站  微博网页版首页入口 微博电脑端官网登录链接  HTML空白字符处理机制:渲染、DOM与编码实践  微信网页版扫码登录入口 微信网页版二维码登录入口  C++ vector二维数组定义_C++ vector of vector用法  圆通快递查询实时追踪 圆通物流包裹状态快速查看  单12V-2&#215;6实现为RTX 5090供电750W!甚至都没敢跑分  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  解决J*aScript中重复选择项的确认对话框显示问题  深入理解Google Cloud Datastore查询:祖先路径与数据一致性  从J*aScript对象中精确提取指定属性的教程  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  火锅吃太多会怎样 火锅吃太多会上火吗  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口  晋江读书网页版在线登录 晋江读书电脑版官网  免费抖音短视频入口_抖音网页版短视频免费通道  三星GalaxyZFold5怎样在相册制作折叠屏分镜_iPhone三星GalaxyZFold5相册制作折叠屏分镜【创意编辑】  Lar*el Form Request中唯一性验证在更新操作中的正确实现  MongoDB聚合管道:正确匹配对象数组中_id的方法  qq游戏大厅官方下载_qq游戏免费下载安装入口  Web Components中自定义开关组件状态同步的常见陷阱与解决方案  ACG动漫手机版官网入口 手机ACG动漫APP在线观看正版  mcjs网页版在线存档 mcjs云存档登录入口  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  HTML元素状态管理:根据DIV内容动态启用/禁用按钮  c++ 命名空间怎么用 c++ namespace使用指南  海棠电脑版入口_通过电脑访问海棠官网阅读 

搜索