Komut satırından NuGet paketlerini yayımlama (dotnet)

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Bu kılavuz, dotnet komut satırı arabirimini kullanarak projenizi NuGet paketlerini yayımlayacak şekilde yapılandırma konusunda size yol gösterir.

Önkoşullar

Ürün Gereksinimleri
Azure DevOps - Azure DevOps kuruluşu.
- Azure DevOps projesi.
- Azure Artifacts beslemesi.
- .NET SDK sürümünü 9.0.200 veya üzerini indirip yükleyin.

Azure Artifacts Kimlik Bilgisi Sağlayıcısını ayarlama

Akışınızla kimlik doğrulaması yapmak için önce Azure Artifacts Kimlik Bilgisi Sağlayıcısı'nı yüklemeniz gerekir. dotnet ile birlikte gelen araç yükleyicisini kullanarak, aşağıdaki komutu kullanarak kimlik bilgisi sağlayıcısını CLI'dan yükleyebilirsiniz:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

Depo düzeyi nuget.config yalnızca Azure Artifacts kaynakları kullanacak şekilde yapılandırılmışsa, yükleme komutunu bu dizinin dışından çalıştırın veya nuget.org kaynak olarak açıkça ayarlayın:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

İsteğe bağlı olarak, aracı ana sürüme sabitleyin (örneğin, yeniden üretilebilirliği önemli olan kapsayıcı görüntülerinde):

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

İlk kullanım

Kimlik doğrulaması gerektiren bir işlemi ilk kez gerçekleştirdiğinizde aşağıdaki yaklaşımlardan birini kullanın:

  1. Komutu --interactive ile çalıştırın; böylece dotnet oturum açmanız için sizi yönlendirebilir. Bu, çoğu yerel geliştirme senaryosu için önerilen yaklaşımdır.

Etkileşimli bir komut çalıştırmadan önce projenizin ayarlandığından ve akışınızın nuget.configeklendiğinden emin olun. Kurulum ayrıntıları için bkz. proje kurulumu.

Projeniz ayarlandıktan ve akışınıza bağlandıktan sonra proje dizininize gidin ve şunu çalıştırın:

dotnet restore --interactive

Bu komut oturum açmanızı sağlar ve bir oturum belirteci edinir. Oturum açma başarılı olduktan sonra, önbelleğe alınan oturum belirteci geçerliliğini koruduğu sürece --interactive olmadan kimliği doğrulanmış komutları çalıştırabilirsiniz. Daha fazla bilgi için bkz. Session belirteci önbellek konumları.

  1. Docker kapsayıcıları ve özel otomasyon gibi etkileşimli olmayan senaryolar için kimlik bilgilerini environment değişkenleri aracılığıyla sağlayın.

Azure Pipelines için, veya dotnet restore gibi komutları çalıştırmadan önce akışınızda kimlik doğrulaması yapmak için dotnet nuget push görevini kullanın. Daha fazla bilgi için bkz. Restore NuGet packages with Azure Pipelines.

Akış oluşturma

Zaten bir akışınız varsa sonraki adıma devam edin. Aksi takdirde, yeni bir tane oluşturmak için aşağıdaki yönergeleri izleyin:

  1. Azure DevOps'unuzda oturum açın ve projenize gidin.

  2. Artifacts'i ve ardından Feed Oluştur'u seçin.

  3. Akışınız için açıklayıcı bir Ad girin ve Görünürlüğünü (akışınızı kimlerin kullanabileceğini) belirleyin. Akışınızın Kapsamını belirtin ve genel kaynaklardan gelen paketleri dahil etmek istiyorsanız Ortak ortak kaynaklardan paketleri dahil et onay kutusunu işaretleyin.

  4. İşiniz bittiğinde Oluştur'u seçin.

Akışa bağlanma

Akışlarınıza paket yayımlamadan önce Azure Artifacts ile kimlik doğrulaması yapmanız gerekir. Projenizi ayarlamak ve akışınızla kimlik doğrulaması yapmak için aşağıdaki yönergeleri izleyin:

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Nesneler'i seçin ve ardından açılır menüden beslemenizi seçin.

  3. Akışa Bağlan'ı seçin ve ardından soldaki NuGet bölümünden dotnet'i seçin.

  4. csproj veya sln dosyanızla aynı klasörde bir nuget.config dosyası oluşturun. Aşağıdaki XML parçacığını kopyalayın ve yer tutucuları ilgili bilgilerle değiştirerek yeni dosyanıza yapıştırın:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
  </packageSources>
</configuration>
  1. Azure DevOps sunucunuzda oturum açın ve projenize gidin.

  2. Yapıtlar'ıseçin ve ardından akışınızı seçin.

  3. Akışa Bağlanseçeneğini belirleyin ve ardından sol gezinti bölmesinden dotnet seçin.

  4. Akışınıza bağlanmak için Project kurulumu bölümündeki yönergeleri izleyin.

    Azure DevOps Server 2020 ve 2022'de dotnet ile bir akışa bağlanmayı gösteren ekran görüntüsü.

Paketleri aynı kuruluştaki bir akışa yayımlama

Akışınızda bir paket yayımlamak için aşağıdaki komutu çalıştırın. Yer tutucuları uygun değerlerle değiştirin:

dotnet nuget push --source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --api-key <ANY_STRING> <PACKAGE_PATH> 

Örnek:

dotnet nuget push --source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --api-key AZ bin/MyPackage.5.0.2.nupkg

Not

api-key Parametresi bir Azure Artifacts akışına yayımlanırken gereklidir, ancak değeri olarak herhangi bir dizeyi kullanabilirsiniz.

Paketleri farklı bir kuruluştaki bir akışa yayımlama

NuGet paketlerinizi farklı bir Azure DevOps kuruluşundaki bir akışta yayımlamak için, önce hedef kuruluşta bir kişisel erişim belirteci (PAT) oluşturmanız, yeni paket kaynağını yapılandırma dosyanıza eklemeniz ve ardından yayımla komutunu çalıştırmanız gerekir:

  1. Hedef akışı barındıran kuruluşa gidin ve Paketleme> kapsamıyla kişisel erişim belirteci (PAT) oluşturun.

  2. <PERSONAL_ACCESS_TOKEN> yer tutucusunu kişisel erişim belirtecinizle değiştirin ve ardından paket kaynağınızı nuget.config dosyanıza eklemek için aşağıdaki komutu çalıştırın. Bu dosyanın güvenli bir şekilde depolandığından ve kaynak denetiminde denetlenmediğinden emin olun.

    dotnet nuget add source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --name <SOURCE_NAME> --username <USER_NAME> --password <PERSONAL_ACCESS_TOKEN> --configfile <PATH_TO_NUGET_CONFIG_FILE>
    
  3. Paketinizi yayımlamak için aşağıdaki komutu çalıştırın:

    dotnet nuget push --source <SOURCE_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>
    

Örnek:

dotnet nuget add source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --name MySource --username MyUserName --password MyPersonalAccessToken --configfile ./nuget.config

dotnet nuget push --source MySource --api-key AZ nupkgs/mypackage.1.1.0.nupkg

Not

Kuruluşunuz bir güvenlik duvarı veya ara sunucu kullanıyorsa Azure Artifacts Etki Alanı URL'lerine ve IP adreslerine izin verildiğinden emin olun.