👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.


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.

Configurar la CLI dotnet para usar con paquetes de GitHub

Puedes configurar la interfaz de línea de comando (CLI) dotnet para publicar paquetes NuGet en GitHub Packages y utilizar paquetes almacenados en GitHub Packages como dependencias en un proyecto de .NET.

GitHub Packages se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. GitHub Packages no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Para obtener más información, consulta la sección "Productos de GitHub".

En este artículo

Autenticar a GitHub Packages

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en GitHub Packages. Puedes utilizar un token de acceso personal para autenticarte con tu nombre de usuario directamente en GitHub Packages o en la API de GitHub. Puedes utilizar un GITHUB_TOKEN para autenticarte utilizando un flujo de trabajo de GitHub Actions.

Autenticando con un token de acceso personal

Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en GitHub Packages. Para obtener más información, consulta "Acerca de GitHub Packages."

Para autenticarte en GitHub Packages con la interfaz de la línea de comando (CLI) dotnet, crea un archivo nuget.config en el directorio de tu proyecto especificando GitHub Packages como una fuente en packageSources para el cliente de la CLI Dotnet.

Debes reemplazar:

  • USERNAME (nombre de usuario) por el nombre de tu cuenta de usuario en GitHub.
  • TOKEN por tu token de acceso personal.
  • OWNER (propietario) por el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto. 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.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.pkg.github.com/OWNER/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>

Autenticando con el GITHUB_TOKEN

Si estás utilizando un flujo de trabajo de GitHub Actions, puedes utilizar un GITHUB_TOKEN para publicar y consumir paquetes en GitHub Packages sin que necesites almacenar y administrar un token de acceso personal. Para obtener más información, consulta la sección "Autenticarse con el GITHUB_TOKEN".

Publicar un paquete

Puedes publicar un paquete en GitHub Packages al autenticarte con un archivo nuget.config. Al publicar, debes usar el mismo valor para OWNER en tu archivo csproj que usas en tu archivo de autenticación nuget.config. Especifica o incrementa el número de versión en tu archivo .csproj y luego usa el comando dotnet pack para crear un archivo .nuspec para esa versión. Para obtener más información sobre la creación de tu paquete, consulta "Crear y publicar un paquete" en la documentación de Microsoft.

Después de que publiques un paquete, puedes verlo en GitHub. Para obtener más información, consulta "Visualizar paquetes".

  1. Autentícate en GitHub Packages. Para obtener más información, consulta "Autenticar a GitHub Packages."

  2. Crear un proyecto nuevo.

    dotnet new console --name OctocatApp
  3. Agrega la información específica de tu proyecto al archivo de tu proyecto, que finaliza en .csproj. Debes reemplazar:

    • OWNER por el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto.
    • REPOSITORY por el nombre del repositorio que contiene el paquete que deseas publicar.
    • 1.0.0 por el número de versión del paquete.
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
    </Project>
    
  4. Empaquetar el proyecto.

    dotnet pack --configuration Release
  5. Publicar el paquete utilizando la clave que especificaste en el archivo nuget.config.

    dotnet nuget subir "bin/Release/OctocatApp. 1.0.0. nupkg"--Source "GitHub"

Publicar varios paquetes en el mismo repositorio

Para publicar varios paquetes en el mismo repositorio, puedes incluir la misma URL del repositorio de GitHub en los campos RepositoryURL en todos los archivos del proyecto .csproj. GitHub coincide con el repositorio en base a ese campo.

Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>OctodogApp</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octodog</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds an Octodog!</PackageDescription>
    <RepositoryUrl>https://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
  </PropertyGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>OctocatApp</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds an Octocat!</PackageDescription>
    <RepositoryUrl>https://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
  </PropertyGroup>

</Project>

Instalar un paquete

El uso de paquetes desde GitHub en tu proyecto es similar al uso de paquetes desde nuget.org. Agrega las dependencias de tu paquete a tu archivo .csproj, especificando el nombre del paquete y la versión. Para obtener más información sobre el uso de un archivo .csproj en tu proyecto, consulta "Trabajar con paquetes NuGet"en la documentación de Microsoft.

  1. Autentícate en GitHub Packages. Para obtener más información, consulta "Autenticar a GitHub Packages."

  2. Para usar un paquete, agrega ItemGroup y configura el campo PackageReference en el archivo de proyecto .csproj, reemplaza el paquete OctokittenApp por la dependencia de tu paquete y 1.0.0 por la versión que deseas usar:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="OctokittenApp" Version="12.0.2" />
      </ItemGroup>
    
    </Project>
    
  3. Instalar los paquetes con el comando restore (restaurar).

    restaurar dotnet

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos