Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Configuring NuGet for use with GitHub Packages

You can configure NuGet to publish packages to Registro del paquete de GitHub and to use packages stored on Registro del paquete de GitHub as dependencies in a .Net project.

Registro del paquete de GitHub is available with GitHub gratis, GitHub Pro, Equipo de GitHub, and Nube de GitHub Enterprise.

In this article

Authenticating to Registro del paquete de GitHub

You need an access token to publish, install, and delete packages in Registro del paquete de GitHub. You can use a personal access token to authenticate with your username directly to Registro del paquete de GitHub or the GitHub API. You can use a GITHUB_TOKEN to authenticate using a Acciones de GitHub workflow.

Authenticating with a personal access token

You must use a personal access token with the appropriate scopes to publish and install packages in Registro del paquete de GitHub. For more information, see "About Registro del paquete de GitHub."

To authenticate to Registro del paquete de GitHub with NuGet, add Registro del paquete de GitHub as a Source to the nuget client. Replace USERNAME with the name of your user account on GitHub, TOKEN with your personal access token, and OWNER with the name of the user or organization account that owns the repository containing your project. Dado que las letras mayúsculas no son compatibles, debes usar minúscula para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

nuget sources Add -Name "GPR" \
     -Source "https://nuget.pkg.github.com/OWNER/index.json" \
     -UserName USERNAME -Password TOKEN

Authenticating with the GITHUB_TOKEN

También puedes usar un GITHUB_TOKEN para publicar y consumir paquetes en el Registro del paquete de GitHub de un flujo de trabajo de Acciones de GitHub sin almacenar ni administrar un token de acceso personal. Para obtener más información acerca de GITHUB_TOKEN, consulta "GITHUB_TOKEN secret".

Puedes usar un script para insertar tu GITHUB_TOKEN en el archivo de configuración adecuado para el Registro del paquete de GitHub. Agrega el Registro del paquete de GitHub como repositorio o registro alternativo en el archivo de configuración para el cliente del paquete, además de tu nombre de usuario de GitHub Enterprise y un token de acceso personal con los alcances adecuados. Los pasos exactos para crear un archivo de configuración varían por tipo de paquete.

Publishing a package

You can publish a package to Registro del paquete de GitHub when you specify the Source as GPR. Registro del paquete de GitHub will use the same value for OWNER that you authenticate with. For more information on creating your package, see "Create and publish a package" in the Microsoft documentation.

After you publish a package, you can view the package on GitHub. For more information, see “Viewing a repository's packages.”

  1. Authenticate to Registro del paquete de GitHub. For more information, see "Authenticating to Registro del paquete de GitHub."

  2. Use the nuget command, replacing PACKAGE with the name of your package.

    $ nuget push PACKAGE.nupkg -Source "GPR"

Publishing multiple packages to the same repository

When you publish a package, by default Registro del paquete de GitHub uses the package name to determine the GitHub repository containing the package. For example, a package named odata-client would be published to the OWNER/odata-client repository.

If you would like to change the repository containing the package, or publish multiple packages to the same repository, you can include the URL to the GitHub repository in the repository field of the package's .nuspec file. GitHub will match the repository based on that field, instead of the package name. If you have a .csproj file created by Visual Studio, the version you use in your .nuspec file must match the version in your .csproj file.

  1. Add the URL of the GitHub repository in the repository field of the package's .nuspec file.

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
        <metadata>
        <id>sample</id>
        <version>1.2.3</version>
        <authors>Kim Abercrombie, Franck Halmaert</authors>
        <description>Sample exists only to show a sample .nuspec file.</description>
        <language>en-US</language>
        <repository type="git" url="https://github.com/my-org/my-custom-repo"/>
        </metadata>
    </package>
  2. Create the package using the configuration in the package's .nuspec file.

    $ dotnet pack --configuration Release
  3. Publish the new package to GitHub, replacing PACKAGE with the name of your package.

    $ nuget push PACKAGE.nupkg -Source "GPR"

Installing a package

Using packages from GitHub in your project is similar to using packages from nuget.org. Add your package dependencies to your package.config, specifying the package name and version. For more information on using a packages.config in your project, see "Working with NuGet packages" in the Microsoft documentation.

  1. Authenticate to Registro del paquete de GitHub. For more information, see "Authenticating to Registro del paquete de GitHub."

  2. Configure packages.config to use the package, replacing the octo-app package with your package dependency.

     <?xml version="1.0" encoding="utf-8"?>
       <packages>
         <package id="octo-app" version="3.1.1" />
       </packages>
     </xml>
  3. Restore all packages.

    $ nuget restore

Further reading

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos