Połącz się z kanałami informacyjnymi Azure Artifacts za pomocą programu NuGet.exe

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Azure Artifacts ułatwia przechowywanie pakietów i zarządzanie nimi za pomocą pojedynczego kanału informacyjnego. Pakiety można udostępniać w swoim zespole, w organizacjach lub w przypadku istniejących projektów publicznych publicznie. W tym artykule pokazano, jak skonfigurować projekt i uwierzytelnić się w kanale informacyjnym Azure Artifacts przy użyciu NuGet.exe.

Wymagania wstępne

produkt Wymagania
Azure DevOps — Organizacja usługi Azure DevOps .
— Projekt usługi Azure DevOps .
— Źródło danych usługi Azure Artifacts .
— Pobierz i zainstaluj nuget.exe wersję lub nowszą 4.8.0.5385 . Zalecamy korzystanie z programu NuGet w wersji 5.5.x lub nowszej, która zawiera ważne poprawki błędów dotyczące anulowania i przekroczeń limitu czasu.

Konfigurowanie dostawcy poświadczeń Azure Artifacts

Dostawca poświadczeń Azure Artifacts umożliwia bezpieczne uwierzytelnianie do feedów Azure Artifacts. Aby używać go z nuget.exe, należy najpierw dodać go do ścieżki wyszukiwania wtyczki NuGet. Aby uzyskać szczegółowe informacje, zobacz Instalacja i odnajdywanie wtyczki. Po dodaniu wtyczki wykonaj poniższe kroki instalacji systemu operacyjnego:

Użyj jednej z następujących metod, aby zainstalować dostawcę poświadczeń Azure Artifacts:

Instalacja ręczna

  1. Pobierz najnowszą wersję Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Wyodrębnij plik zip.

  3. Skopiuj folder netfx z wyodrębnionego archiwum do %UserProfile%/.nuget/plugins/. Folder netfx jest wymagany do zapewnienia zgodności z programem nuget.exe.

Instalowanie przy użyciu skryptu pomocnika

Alternatywnie możesz zautomatyzować instalację za pomocą skryptu pomocnika. Upewnij się, że masz program PowerShell 5.1 lub nowszy, a następnie uruchom polecenie:

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

Aby uzyskać więcej informacji, zobacz repozytorium Azure Artifacts Credential Provider.

Konfiguracja projektu

Wykonaj następujące kroki, aby skonfigurować projekt i dodać źródło danych do nuget.config pliku, aby nuGet wiedział, gdzie przywrócić i opublikować pakiety. Używany adres URL kanału informacyjnego zależy od tego, czy źródło danych jest ograniczone do projektu, czy do organizacji.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.

  3. Wybierz pozycję Połącz z kanałem informacyjnym, a następnie wybierz pozycję NuGet.exe w okienku nawigacji po lewej stronie.

  4. nuget.config Dodaj plik do projektu w tym samym folderze co plik .csproj lub.sln, a następnie wklej do niego podany fragment kodu. Plik nuget.config powinien przypominać jeden z następujących przykładów:

    • Kanał informacyjny w zakresie projektu:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • Kanał informacyjny na potrzeby organizacji

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Zaloguj się do kolekcji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.

  3. Wybierz Połącz z kanałem informacyjnym, a następnie wybierz NuGet.exe w okienku nawigacji po lewej stronie.

  4. Dodaj plik nuget.config do projektu w tym samym folderze co plik .csproj lub .sln, a następnie wklej do tego pliku fragment kodu podany w sekcji Konfiguracja projektu.

Uwaga / Notatka

Dostawca poświadczeń Azure Artifacts wymaga wersji NuGet lub nowszej4.8.0.5385. Azure Artifacts zaleca użycie narzędzia NuGet 5.5.x lub nowszego w celu uzyskania najlepszej zgodności i niezawodności.

Konfiguracja starszego projektu

Jeśli używasz starszej wersji pakietu NuGet, która nie obsługuje zalecanego przepływu w wersji 3, nadal możesz nawiązać połączenie ze źródłem danych przy użyciu starszego punktu końcowego w wersji 2 i osobistego tokenu dostępu (PAT). Użyj tej metody tylko wtedy, gdy nie można przejść do nowszego klienta.

  1. Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.

  2. Wybierz pozycję Artefakty, a następnie wybierz swój kanał z menu rozwijanego.

  3. Wybierz Połącz z kanałem informacyjnym, a następnie wybierz NuGet.exe z lewej strony.

  4. Skopiuj źródłowy adres URL z sekcji Konfiguracja projektu , a następnie zastąp ciąg /v3/index.json ciągiem /v2. Zaktualizowany adres URL źródła powinien wyglądać następująco:

    • Kanał informacyjny w zakresie projektu:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Kanał informacyjny na potrzeby organizacji

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Utwórz osobisty token dostępu. Określ zakres tokenu dla organizacji, do której chcesz uzyskać dostęp, a następnie wybierz jeden z następujących zakresów w zależności od potrzeb: Pakowanie (odczyt), pakowanie (odczyt i zapis) lub pakowanie (odczyt, zapis i zarządzanie).

  6. Uruchom następujące polecenie w oknie wiersza polecenia, aby dodać swoje źródło danych do pliku nuget.config.

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Jeśli twoja organizacja jest połączona z Microsoft Entra ID, najpierw uwierzytelnij się przy użyciu poświadczeń Microsoft Entra, a następnie dodaj osobisty token dostępu przy użyciu setapikey polecenia :

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD>
    
    nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL> 
    

Uwierzytelnij się przy użyciu nazw głównych usług

Użyj uwierzytelniania za pomocą nazwy głównej usługi na potrzeby scenariuszy automatyzacji, gdy interakcyjne logowanie nie jest odpowiednie. Aby uwierzytelnić się w źródle danych Azure Artifacts przy użyciu nazwy głównej usługi, ustaw zmienną środowiskową ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS, jak pokazano w poniższych przykładach.

Zmienna określa adres URL źródła danych, identyfikator aplikacji głównej usługi (klienta) oraz nazwę podmiotu certyfikatu lub ścieżkę pliku certyfikatu. Potrzebujesz tylko jednej z wartości certyfikatu.

$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
    "endpointCredentials": [
        {
            "endpoint": "<FEED_URL>",
            "clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
            "clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
            "clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
        }
    ]
}
'@