Flujo de trabajo de creación de paquetesPackage creation workflow

La creación de un paquete empieza con el código compilado (normalmente los ensamblados .NET) que quiera empaquetar y compartir con otros usuarios, ya sea a través de la galería pública de nuget.org o mediante una galería privada de su organización.Creating a package starts with the compiled code (typically .NET assemblies) that you want to package and share with others, either through the public nuget.org gallery or a private gallery within your organization. El paquete también puede incluir otros archivos (como un archivo Léame que se muestre en el momento de instalar el paquete), así como transformaciones de determinados archivos de proyecto.The package can also include additional files such as a readme that is displayed when the package is installed, and can include transformations to certain project files.

Un paquete también puede servir para solo sacar una determinada cifra de dependencias, sin que contenga código propio.A package can also serve to only pull in any number of other dependencies, without containing any code of its own. Este tipo de paquete es un método cómodo para entregar un SDK que está formado por varios paquetes independientes.Such a package is a convenient way to deliver an SDK that's composed of multiple independent packages. En otros casos, un paquete puede contener solo archivos de símbolos (.pdb) para facilitar la depuración.In other cases, a package may contain only symbol (.pdb) files to aid debugging.

Nota

Al crear un paquete para que lo usen otros desarrolladores, es importante tener en cuenta que están tomando una dependencia de su trabajo.When you create a package for use by other developers, it's important to understand that they are taking a dependency on your work. Por definición, crear y publicar un paquete también implican un compromiso para corregir errores y efectuar otras actualizaciones, o por lo menos hacer que el paquete esté disponible como código abierto para que otros usuarios puedan colaborar en su mantenimiento.As such, creating and publishing a package also implies a commitment to fixing bugs and making other updates, or at the very least making the package available as open source so others can help to maintain it.

En cualquier caso, el proceso de creación de un paquete comienza por decidir qué ensamblados y otros archivos se van a empaquetar.Whatever the case, creating a package begins with deciding which assemblies and other files to package. Luego se crea un archivo de manifiesto, conocido como archivo .nuspec, para describir el contenido del paquete junto con su identificador, el número de versión, la información de copyright, los destinos y las propiedades de MSBuild, etc.You then create a manifest file, referred to as a .nuspec file, to describe the package's contents along with its identifier, version number, copyright information, MSBuild props and targets, and much more.

Cuando haya preparado todos los archivos necesarios en las carpetas adecuadas y haya creado el archivo .nuspec correspondiente, deberá usar el comando nuget pack (o el destino pack de MSBuild) para ponerlo todo en un archivo .nupkg.When you've prepared all the necessary files in the appropriate folders and have created the appropriate .nuspec file, you then use the nuget pack command (or the MSBuild pack target) to put everything together into a .nupkg file. Entonces estará a punto para implementar el paquete en cualquier host que lo ponga a disposición de otros desarrolladores.You're then ready to deploy the package to whatever host makes it available to other developers.

Sugerencia

Un paquete de NuGet con la extensión .nupkg es un simple archivo ZIP.A NuGet package with the .nupkg extension is simply a ZIP file. Para examinar fácilmente el contenido de cualquier paquete, cambie la extensión a .zip y expanda su contenido como de costumbre.To easily examine any package's contents, change the extension to .zip and expand its contents as usual. Asegúrese de volver a cambiar la extensión a .nupkg antes de intentar cargarla en un host.Just be sure to change the extension back to .nupkg before attempting to upload it to a host.

Para aprender y entender el proceso de creación, comience creando un paquete, que le guiará a través de los procesos básicos comunes para todos los paquetes.To learn and understand the creation process, start with Creating a package which guides you through the core processes common to all packages.

Desde ahí podrá plantearse una serie de opciones más para el paquete:From there, you can consider a number of other options for your package:

  • En Compatibilidad con varias plataformas de destino se describe cómo crear un paquete con varias variantes para diferentes versiones de .NET Framework.Supporting Multiple Target Frameworks describes how to create a package with multiple variants for different .NET Frameworks.
  • En Creación de paquetes localizados se describe cómo estructurar un paquete con varios recursos de idioma y cómo usar paquetes satélite localizados e independientes.Creating Localized Packages describes how to structure a package with multiple language resources and how to use separate localized satellite packages.
  • En Paquetes de versión preliminar se muestra cómo liberar paquetes alfa, beta y rc a aquellos clientes que estén interesados.Pre-release Packages demonstrates how to release alpha, beta, and rc packages to those customers who are interested.
  • En Origen y transformaciones del archivo de configuración se describe cómo se pueden hacer reemplazos de tokens unidireccionales en archivos que se agregan a un proyecto y cómo modificar web.config y app.config con una configuración que también se retira cuando se desinstala el paquete.Source and Config File Transformations describes how you can do both one-way token replacements in files that are added to a project, and modify web.config and app.config with settings that are also backed out when the package is uninstalled.
  • En Paquetes de símbolos se ofrecen consejos para proporcionar símbolos para su biblioteca que permiten a los consumidores entrar en el código durante la depuración.Symbol Packages offers guidance for supplying symbols for your library that allow consumers to step into your code while debugging.
  • En Package versioning (Control de versiones de paquetes) se describe cómo identificar las versiones exactas que se permiten para las dependencias (otros paquetes que se usan en el paquete).Package versioning discusses how to identify the exact versions that you allow for your dependencies (other packages that you consume from your package).
  • En Paquetes nativos se describe el proceso de creación de un paquete para los consumidores de C++.Native Packages describes the process for creating a package for C++ consumers.
  • En Firma de paquetes NuGet se describe el proceso para agregar una firma digital a un paquete.Signing Packages describes the process for adding a digital signature to a package.

Cuando esté preparado para publicar un paquete en nuget.org, siga el proceso simple en Publicar un paquete.When you're then ready to publish a package to nuget.org, follow the simple process in Publish a package.

Si quiere usar una fuente privada en lugar de nuget.org, vea la información general sobre el hospedaje de paquetes.If you want to use a private feed instead of nuget.org, see the Hosting Packages Overview