新闻中心

C# 怎么创建和使用 NuGet 包_C# NuGet 包创建与使用教程

2025-11-18
浏览次数:
返回列表
创建类库项目并编写代码;2. 在.csproj中配置包信息,如PackageId、Version等;3. 生成项目以创建.nupkg文件;4. 将包发布到本地或nuget.org;5. 在其他项目中通过NuGet源安装并使用包。

c# 怎么创建和使用 nuget 包_c# nuget 包创建与使用教程

创建和使用 C# 的 NuGet 包是开发中常见的需求,尤其在团队协作或复用代码时非常有用。下面详细介绍如何从零开始创建一个 NuGet 包,并在其他项目中引用它。

1. 创建要打包的类库项目

首先需要一个 .NET 类库项目,它是 NuGet 包的内容来源。

  • 打开 Visual Studio,选择“创建新项目”
  • 模板选择“类库 (.NET Standard 或 .NET Core/.NET 6+ 推荐)”
  • 命名项目,例如 MyLibrary
  • 编写你要公开的类和方法

示例代码:

namespace MyLibrary
{
    public class Calculator
    {
        public int Add(int a, int b) => a + b;
    }
}

2. 配置项目以支持生成 NuGet 包

NuGet 包信息可以直接写在 .csproj 文件中,无需单独的 .nuspec 文件(推荐方式)。

右键项目 → “编辑项目文件”,添加以下内容:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <PackageId>MyCompany.MyLibrary</PackageId>
    <Version>1.0.0</Version>
    <Authors>YourName</Authors>
    <Company>MyCompany</Company>
    <Description>A simple calculator library.</Description>
    <PackageTags>calculator;demo</PackageTags>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  </PropertyGroup>
</Project>
说明:
  • PackageId:包的唯一标识,在 nuget.org 上必须唯一
  • Version:版本号,遵循语义化版本(如 1.0.0)
  • GeneratePackageOnBuild:编译时自动生成 .nupkg 文件

3. 构建并生成 NuGet 包

保存项目文件后,重新构建项目:

  • 右键项目 → “重新生成”
  • 在 bin/Debug 或 bin/Release 目录下找到 .nupkg 文件

如果没生成,请检查是否设置了 GeneratePackageOnBuild 为 true。

Whimsical Whimsical

Whimsical推出的AI思维导图工具

Whimsical 182 查看详情 Whimsical

4. 发布到本地或远程 NuGet 源

发布到本地源(测试用):

  • 创建一个本地文件夹作为源,例如 C:\LocalNuGet
  • 将生成的 .nupkg 文件复制进去
  • 在 Visual Studio 中配置该源:工具 → 选项 → NuGet 包管理器 → 程序包源 → 添加
  • 名称填 Local,源填文件路径(如 C:\LocalNuGet)

发布到 nuget.org(公开):

  • 注册 nuget.org 账号并获取 API Key
  • 使用命令行推送:
nuget push MyCompany.MyLibrary.1.0.0.nupkg YOUR_API_KEY -Source https://api.nuget.org/v3/index.json

确保已安装 NuGet CLI 工具。

5. 在其他项目中使用 NuGet 包

新建一个控制台项目或其他类型项目,然后:

  • 右键项目 → “管理 NuGet 包”
  • 在“浏览”选项卡中,选择你配置的源(如 Local 或 nuget.org)
  • 搜索你的包名(如 MyCompany.MyLibrary)
  • 点击“安装”

代码中引用并使用:

using MyLibrary;
<p>var calc = new Calculator();
Console.WriteLine(calc.Add(2, 3)); // 输出 5

基本上就这些。整个流程不复杂,关键是把项目元数据配置清楚,测试本地包再发布。只要包能正常安装并调用方法,就算成功了。

以上就是C# 怎么创建和使用 NuGet 包_C# NuGet 包创建与使用教程的详细内容,更多请关注其它相关文章!


# 你要  # 学seo怎么去学  # 如何营销推广产品的优势  # 汉阳抖音seo公司  # seo关键词推广工具黑帽seo  # 众筹网站有哪些平台推广  # 蒲城营销推广招聘网  # 汝州关键词排名优化  # 网站模板的优化  # 抖音开锁关键词排名  # 江苏seo培训公司  # 并在  # 如何在  # js  # 序列化  # 操作指南  # 如何将  # 创建一个  # 如何使用  # 类库  # 右键  # .net  # c#  # microsoft  # 工具  # json 


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


相关推荐: css链接悬停下划线样式如何自定义_使用::after结合content和transition  c++如何实现单例设计模式_c++线程安全的单例模式写法  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常  Lar*el用户头像管理:实现图片缩放、存储与旧文件安全删除的最佳实践  优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题  我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口  Excel Power Pivot如何处理XML数据源 构建高级数据模型  如何使用Rector自动化升级旧代码_通过Composer安装和配置Rector进行代码重构  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  c++如何实现一个简单的软件渲染器_c++从零开始的3D图形学  C++ vector二维数组定义_C++ vector of vector用法  Python大型XML文件高效流式解析教程  为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法  谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航  在J*a中如何隐藏复杂性_使用门面模式组织对象交互  在哪找SublimeJ远程工具_SFTP插件配置教程  PHP中获取MongoDB服务器运行时间(Uptime)的专业指南  拼多多赚钱渠道_拼多多收益来源  妖精漫画网页版登录入口免费_妖精漫画官网主页直接阅读漫画  QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  抖音网页版快捷访问 抖音网页版网页版入口操作教程  必由学官方平台入口 必由学在线课堂登录地址  PySpark中从现有列右侧提取可变长度字符创建新列的教程  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  Excel中VLOOKUP的第四个参数是干什么用的_Excel VLOOKUP第四参数作用解析  Python多线程中正确使用sigwait处理SIGALRM信号  创客贴用户入口官网登录 创客贴网页版电脑版系统  漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口  c++ 获取系统当前时间 c++时间戳获取方法  如何使用Go和Martini动态服务解码后的图片  Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】  2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  高德地图沿途添加点失败如何解决 高德多点规划方法  期待已久:小米17 Ultra、小米首款NAS本月登场  Flexbox布局实践:实现粘性导航栏与底部固定页脚  苹果手机如何防止被恶意App追踪  j*a toString()的覆盖  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  支付宝如何设置安全保护_支付宝安全设置的全面教程  解决深度学习模型训练初期异常高损失与完美验证准确率问题  Golang如何实现简单的Web表单_Golang表单提交与验证处理方法  Excel文件在线转换快速入口 Excel在线格式转换网站  汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口  微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法  UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置 

搜索