包创建工作流

通过公共 nuget.org 库或组织内部的私有库,创建你要进行打包并与他人共享的、以编译代码(通常为 .NET 程序集)开头的包。 此包还可以包含其他文件(如安装包时显示的自述文件)以及特定项目文件的转换文件。

包还可仅用于拉入任意数量的其他依赖项,但不包含其自己的任何代码。 利用这种包可以轻松传递由多个独立包组成的 SDK。 在其他情况下,包可能仅包含用于协助调试的符号 (.pdb) 文件。

注意

如果要创建供其他开发人员使用的包,则务必了解他们将依赖于你的工作成果。 因此,创建并发布包也表示你将修复 bug 和提供其他更新,或者至少应以开源形式提供包,以便他人可帮助维护包。

无论哪种情况,都要从决定其标识符、版本号、许可证、版权信息和任何其他必要内容开始创建包。 完成后,可以使用“pack”命令将所有内容放到 .nupkg 文件中。 可以将此文件发布到 NuGet 源,如 nuget.org。

提示

具有 .nupkg 扩展名的 NuGet 包只是一个 zip 文件。 若要轻松查看任何包的内容,只需将扩展名更改为 .zip 并按常规方法展开内容。 尝试将包上传到主机前,请务必将扩展名改回 .nupkg

若想了解并掌握创建流程,请首先参阅创建包,其中针对适用于所有包的核心流程提供了完整说明。

接下来,你可以考虑对包应用其他多种选项:

  • 支持多目标框架,说明如何创建具有面向不同 .NET Framework 的多个变体的包。
  • 创建本地化包,说明如何构建具有多个语言资源的包以及如何使用独立的本地化附属包。
  • 预发行包,演示如何向感兴趣的客户发布 alpha、beta 和 rc 版本的包。
  • 源和配置文件转换,说明如何在已添加到项目的文件中执行两种单向令牌替换,以及如何修改 web.configapp.config(卸载包时还将舍弃这两者的设置)。
  • 符号包,说明如何为库提供符号以允许使用者在调试期间单步执行代码。
  • 包版本控制,说明如何识别依赖项(通过你的包所使用的其他包)所需的确切版本。
  • 本机包,说明面向 C++ 使用者创建包的流程。
  • 签名包,说明向包添加数字签名的流程。

当准备好将包发布到 nuget.org 时,请按照发布包中的简单流程执行操作。

如果希望使用私有源而非 nuget.org,请参阅托管包概述