C# Academy · 课时

打包并发布到 NuGet

将库打包为 .nupkg 并发布。填写最少的元数据,运行 dotnet pack,使用 API 密钥推送,并遵循安全的发布实践。

第 2 / 3 课8 个步骤

打包并发布到 NuGet 是 CoddyKit 上的免费 C# Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 3 节课。

计划

目标:构建并发布 NuGet 包。

  • 在项目中填写基本元数据
  • 运行 dotnet pack 以生成 .nupkg
  • 使用 API 密钥执行 dotnet nuget push
  • 遵循安全的发布检查

要设置的元数据

  • PackageId:唯一 ID(例如 Company.Widget)
  • 版本:MAJOR.MINOR.PATCH
  • 作者、描述
  • PackageLicenseExpression(例如 MIT)或许可证文件
  • RepositoryUrl(可选但很有用)

标识预览

包携带标识和版本。这个简单应用会读取打包时将要公开的程序集名称和版本。

using System;
using System.Reflection;

// Demo: show how a packed library exposes version and name.
// In real packaging, version/metadata come from the .csproj.
public class Program
{
  public static void Main(string[] args)
  {
    Assembly asm = Assembly.GetExecutingAssembly();
    Version ver = asm.GetName().Version;
    string name = asm.GetName().Name;
    Console.WriteLine("Assembly: " + name);
    Console.WriteLine("Version: " + (ver == null ? "unknown" : ver.ToString()));
    Console.WriteLine("Tip: Set PackageId/Version/Authors in the .csproj before packing.");
  }
}

打包与推送步骤

工作流:还原 → 打包 → 推送。请妥善保管 API 密钥,并限制其权限范围。

using System;

// This code prints the typical pack workflow steps.
// Run them in your terminal; here we just echo the sequence.
public class Program
{
  static void Print(string step)
  {
    Console.WriteLine(step);
  }

  public static void Main(string[] args)
  {
    Print("1) Ensure .csproj has PackageId/Version/Authors/Description");
    Print("2) dotnet restore");
    Print("3) dotnet pack -c Release");
    Print("   -> bin/Release/<tfm>/*.nupkg");
    Print("4) Get an API key from your NuGet server");
    Print("5) dotnet nuget push bin/Release/*.nupkg --api-key <KEY> --source <URL or nuget.org>");
    Print("Done: package available for consumers.");
  }
}

发布提示

  • 推送前在本地测试包(从本地源安装)
  • 对 API 密钥保密;优先使用环境变量
  • 如果需要更好的调试体验,请提供符号和源代码信息
  • 编写简短的 README 和变更日志

故障排查

  • ID 已存在 → 选择唯一的 PackageId
  • 缺少许可证 → 添加 PackageLicenseExpression 或许可证文件
  • 没有描述 → 添加简短的产品摘要
  • 版本错误 → 正确递增 MAJOR/MINOR/PATCH

打包命令

快速检查:哪个 CLI 命令可以从 .csproj 创建 .nupkg?

回顾

回顾:填写项目元数据,运行 dotnet pack 创建 .nupkg,然后使用 API 密钥运行 dotnet nuget push。验证内容并妥善保管凭据。

免费开始

用 AI 导师学习 C# — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
93
课程
346

常见问题解答

「打包并发布到 NuGet」课时是免费的吗?

是的 — 「打包并发布到 NuGet」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 3 节课。

「打包并发布到 NuGet」这节课中我会学到什么?

将库打包为 .nupkg 并发布。填写最少的元数据,运行 dotnet pack,使用 API 密钥推送,并遵循安全的发布实践。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 C# Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。

「打包并发布到 NuGet」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 C# Academy 课中编写并运行代码吗?

能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 库与应用的 .csproj 及语义化版本
  2. 打包并发布到 NuGet
  3. 多目标框架
← 返回 C# Academy