Aracılığıyla paylaş


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

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

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.
- Azure Artifacts Kimlik Bilgisi Sağlayıcısıindirip yükleyin.
- .NET Core SDK (2.1.400+) indirip yükleyin.

Akışa bağlanma

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

  2. Yapıtlar'ı seçin ve ardından açılan menüden akışınızı seçin.

  3. akışa bağlan'ıve ardından soldaki NuGet bölümünden dotnet 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:

  • Kuruluş odaklı besleme:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
      </packageSources>
    </configuration>
    
  • Proje kapsamlı akış:

    <?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ü.

Not

dotnet, Azure DevOps Server 2019'da desteklenmez.

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 gereklidir, ancak bir Azure Artifacts feedine yayınlarken değeri olarak herhangi bir dize sağlayabilirsiniz.

Paketleri başka bir kuruluştaki bir akışa yayımlama

NuGet paketlerinizi farklı bir Azure DevOps kuruluşundaki bir akışta yayımlamak için öncelikle hedef kuruluşta bir kişisel erişim belirteci (PAT) oluşturmanız gerekir.

  1. Hedef akışı barındıran kuruluşa gidin ve Paketleme>Okuma & yazma 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 verin.