Hinweis
Dieser Pakettyp ist möglicherweise nicht für deine Instanz verfügbar, weil Websiteadministratoren die einzelnen unterstützten Pakettypen aktivieren oder deaktivieren können. Weitere Informationen finden Sie unter Konfigurieren der Paketökosystemunterstützung für dein Unternehmen.
Bei GitHub Packages authentifizieren
Hinweis
GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen finden Sie unter Verwalten deiner persönlichen Zugriffstoken.
Du benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.
Du kannst ein personal access token (classic) verwenden, um dich bei GitHub Packages oder der GitHub-API zu authentifizieren. Wenn du ein personal access token (classic) erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen zu paketbezogenen Bereichen für ein personal access token (classic) findest du unter Informationen zu Berechtigungen für GitHub-Pakete.
Um dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:
GITHUB_TOKEN, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.- Ein personal access token (classic) mit mindestens dem 
read:packages-Bereich für die Installation von Paketen, die anderen privaten Repositorys zugeordnet sind (GITHUB_TOKENkann verwendet werden, wenn das Repository Lesezugriff auf das Paket enthält. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen). 
Authentifizieren in einem GitHub Actions-Workflow
Verwende den folgenden Befehl, um dich bei GitHub Packages in einem GitHub Actions-Workflow mit dem GITHUB_TOKEN zu authentifizieren, anstatt ein hartcodiertes personal access token in einer Datei vom Typ „nuget.config“ im Repository zu verwenden:
dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.HOSTNAME/NAMESPACE/index.json"
Ersetze NAMESPACE durch den Namen des persönlichen Kontos oder der Organisation , das bzw. die das Repository besitzt, in dem deine Pakete gehostet werden.
Ersetzen Sie USERNAME durch den Benutzernamen, der beim Herstellen einer Verbindung mit einer authentifizierten Quelle zu verwenden ist.
Weitere Informationen zum GITHUB_TOKEN, das in GitHub Actions-Workflows verwendet wird, findest du unter Use GITHUB_TOKEN in workflows.
Authentifizieren mit einem personal access token
Hinweis
GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen finden Sie unter Verwalten deiner persönlichen Zugriffstoken.
Du benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.
Du kannst ein personal access token (classic) verwenden, um dich bei GitHub Packages oder der GitHub-API zu authentifizieren. Wenn du ein personal access token (classic) erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen zu paketbezogenen Bereichen für ein personal access token (classic) findest du unter Informationen zu Berechtigungen für GitHub-Pakete.
Um dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:
GITHUB_TOKEN, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.- Ein personal access token (classic) mit mindestens dem 
read:packages-Bereich für die Installation von Paketen, die anderen privaten Repositorys zugeordnet sind (GITHUB_TOKENkann verwendet werden, wenn das Repository Lesezugriff auf das Paket enthält. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen). 
Du musst ein personal access token (classic) mit den entsprechenden Bereichen verwenden, um Pakete in GitHub Packages zu veröffentlichen und zu installieren. Weitere Informationen finden Sie unter Einführung in GitHub-Pakete.
Zum Authentifizieren bei GitHub Packages mit der dotnet-Befehlszeilenschnittstelle (CLI) erstellst du eine Datei nuget.config in deinem Projektverzeichnis und gibst unter packageSources GitHub Packages als Quelle für den dotnet CLI-Client an.
Dabei musst du Folgendes ersetzen:
USERNAMEdurch den Namen deines persönlichen Kontos auf GitHub.TOKENdurch dein personal access token (classic)NAMESPACEdurch den Namen des persönlichen Kontos oder der Organisation , das bzw. die das Repository besitzt, in dem deine Pakete gehostet werden.HOSTNAMEdurch den Hostnamen für Ihre GitHub Enterprise Server-Instance
Wenn die Unterdomänenisolation für deine Instanz aktiviert ist:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.HOSTNAME/NAMESPACE/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>
Wenn die Unterdomänenisolation für deine Instanz deaktiviert ist:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://HOSTNAME/_registry/nuget/NAMESPACE/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>
Veröffentlichen eines Pakets
Sie können ein Paket in GitHub Packages veröffentlichen, indem Sie sich mit einer nuget.config-Datei authentifizieren, die Befehlszeilenoption --api-key mit Ihrem personal access token (classic) für GitHub verwenden oder den Befehl nutzen, der mithilfe der Befehlszeilenschnittstelle (CLI) dotnet direkt über die Befehlszeile ausgeführt werden kann.
Ersetzen Sie OWNER durch Ihren Benutzernamen oder den Firmennamen und YOUR_GITHUB_PAT durch Ihr personal access token.
dotnet nuget add source --username OWNER --password YOUR_GITHUB_PAT --store-password-in-clear-text --name github "https://nuget.HOSTNAME/OWNER/index.json"
Veröffentlichen eines Pakets unter Verwendung eines personal access token für GitHub als API-Schlüssel
Falls du noch nicht über ein personal access token für dein Konto in GitHub verfügst, findest du weitere Informationen unter Verwalten deiner persönlichen Zugriffstoken.
- 
Erstelle ein neues Projekt. Ersetze
PROJECT_NAMEdurch den Namen, den du dem Projekt geben möchtest.dotnet new console --name PROJECT_NAME - 
Packe das Projekt.
dotnet pack --configuration Release - 
Veröffentliche das Paket, und verwende dabei dein personal access token als API-Schlüssel. Ersetze
PROJECT_NAMEdurch den Namen des Projekts,1.0.0durch die Versionsnummer des Pakets undYOUR_GITHUB_PATdurch dein personal access token.dotnet nuget push "bin/Release/PROJECT_NAME.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github" 
Nachdem Du ein Paket veröffentlicht hast, kannst Du das Paket auf GitHub ansehen. Weitere Informationen finden Sie unter Pakete anzeigen.
Veröffentlichen eines Pakets mithilfe einer Datei nuget.config
Wenn du eine Veröffentlichung ausführst,muss der OWNER des in deiner CSPROJ-Datei angegebenen Repositorys mit dem NAMESPACE übereinstimmen, den du in deiner nuget.config-Authentifizierungsdatei verwendest. Gib die Versionsnummer in deiner CSPROJ-Datei an, oder erhöhe sie, und erstelle dann mit dem Befehl dotnet pack eine NUSPEC-Datei für diese Version. Weitere Informationen zum Erstellen deines Pakets findest du in der Microsoft-Dokumentation unter Erstellen und Veröffentlichen eines Pakets.
- 
Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
 - 
Erstelle ein neues Projekt. Ersetze
PROJECT_NAMEdurch den Namen, den du dem Projekt geben möchtest.dotnet new console --name PROJECT_NAME - 
Füge die spezifischen Informationen deines Projekts in der Datei deines Projekts hinzu, die auf .csproj endet. Stelle Folgendes sicher:
1.0.0gibt die Versionsnummer des Pakets zurück.OWNERmit dem Namen des persönlichen Kontos oder der Organisation, die das Repository besitzt, für das du dein Paket veröffentlichen möchtest.REPOSITORYmit dem Namen des Repositorys, mit dem du dein Paket verbinden möchtestHOSTNAMEdurch den Hostnamen für Ihre GitHub Enterprise Server-Instance
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>PROJECT_NAME</PackageId> <Version>1.0.0</Version> <Authors>AUTHORS</Authors> <Company>COMPANY_NAME</Company> <PackageDescription>PACKAGE_DESCRIPTION</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> </Project> - 
Packe das Projekt.
dotnet pack --configuration Release - 
Veröffentliche das Paket mit dem
key, den du in der Datei nuget.config angegeben hast. ErsetzePROJECT_NAMEdurch den Namen des Projekts und1.0.0durch die Versionsnummer des Pakets.dotnet nuget push "bin/Release/PROJECT_NAME.1.0.0.nupkg" --source "github" 
Nachdem Du ein Paket veröffentlicht hast, kannst Du das Paket auf GitHub ansehen. Weitere Informationen finden Sie unter Pakete anzeigen.
Veröffentlichen mehrerer Pakete im gleichen Repository
Um mehrere Pakete mit dem gleichen Repository zu verbinden, verwende die gleiche GitHub-Repository-URL in den Feldern vom Typ RepositoryURL in allen .csproj-Projektdateien einfügen. GitHub ermittelt das Repository anhand dieses Felds.
Im folgenden Beispiel werden die Projekte MY_APP und MY_OTHER_APP im selben Repository veröffentlicht:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>MY_APP</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds a singing Octocat!</PackageDescription>
    <RepositoryUrl>https://HOSTNAME/my-org/my-repo</RepositoryUrl>
  </PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>MY_OTHER_APP</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds a dancing Octocat!</PackageDescription>
    <RepositoryUrl>https://HOSTNAME/my-org/my-repo</RepositoryUrl>
  </PropertyGroup>
</Project>
Installieren eines Pakets
Das Verwenden von Paketen von GitHub in deinem Projekt ähnelt dem Verwenden von Paketen von nuget.org. Füge deine Paketabhängigkeiten in der CSPROJ-Datei hinzu, und gib dabei den Paketnamen und die Version an. Weitere Informationen zum Verwenden einer CSPROJ-Datei in deinem Projekt findest du in der Microsoft-Dokumentation unter Arbeiten mit NuGet-Paketen.
- 
Authentifizieren bei GitHub Packages. Weitere Informationen findest Du unter Authentifizieren bei GitHub Packages.
 - 
Um ein Paket zu verwenden, füge
ItemGrouphinzu, und konfiguriere das FeldPackageReferencein der CSPROJ-Projektdatei. Ersetze denPACKAGE_NAME-Wert inInclude="PACKAGE_NAME"durch deine Paketabhängigkeit, und ersetze denX.X.X-Wert inVersion="X.X.X"durch die Version des Pakets, die du verwenden möchtest:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>My-app</PackageId> <Version>1.0.0</Version> <Authors>Octocat</Authors> <Company>GitHub</Company> <PackageDescription>This package adds an Octocat!</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> <ItemGroup> <PackageReference Include="PACKAGE_NAME" Version="X.X.X" /> </ItemGroup> </Project> - 
Du installierst die Pakete mit dem Befehl
restore.dotnet restore 
Problembehandlung
Dein NuGet-Paket wird möglicherweise nicht gepusht, wenn das RepositoryUrl in der CSPROJ-Datei nicht auf das erwartete Repository festgelegt ist.
Wenn du eine NUSPEC-Datei verwendest, musst du sicherstellen, dass sie ein repository-Element mit den erforderlichen Attributen type und url enthält.
Wenn du GITHUB_TOKEN verwendest, um dich bei einer GitHub Packages-Registrierung in einem GitHub Actions-Workflow zu authentifizieren, kann das Token nicht auf Pakete in privaten Repositorys zugreifen, wenn es sich um ein anderes Repository aus dasjenige handelt, in dem der Workflow ausgeführt wird. Um auf Pakete zuzugreifen, die anderen Repositorys zugeordnet sind, musst du stattdessen ein personal access token (classic) mit dem Geltungsbereich read:packages definieren und dieses Token als Geheimnis übergeben.