Aracılığıyla paylaş


Hızlı Başlangıç: Visual Studio kullanarak paket oluşturma ve yayımlama (.NET Framework, Windows)

Microsoft Visual Studio ile bir .NET Framework sınıf kitaplığından NuGet paketi oluşturabilir ve ardından NuGet CLI aracını kullanarak bunu nuget.org yayımlayabilirsiniz.

Hızlı başlangıç yalnızca Windows kullanıcıları içindir. Mac için Visual Studio kullanıyorsanız bunun yerine dotnet CLI araçlarına bakın.

Önkoşullar

  • Windows için Visual Studio 2022'yi herhangi bir ile yükleyin. NET ile ilgili iş yükü.

    2022 Community sürümünü visualstudio.microsoft.com ücretsiz yükleyebilir veya Professional veya Enterprise sürümünü kullanabilirsiniz.

    Visual Studio 2017 ve üzeri bir .NET iş yükü yüklendiğinde NuGet özelliklerini otomatik olarak içerir.

  • Henüz bir hesabınız yoksa nuget.org'da ücretsiz bir hesaba kaydolun. NuGet paketini karşıya yükleyebilmeniz için önce hesabı kaydetmeniz ve onaylamanız gerekir.

  • NuGet CLI'yi nuget.org'dan indirerek yükleyin. nuget.exe dosyasını uygun bir klasöre ekleyin ve bu klasörü PATH ortam değişkeninize ekleyin.

Sınıf kitaplığı projesi oluşturma

Sınıf kitaplığı projesi oluşturmak için şu adımları izleyin:

  1. Visual Studio'da Dosya>Yeni Proje'yi> seçin.

  2. Yeni proje oluştur penceresinde, açılan listelerde C#, Windows ve Kitaplık'ı seçin.

  3. Sonuçta elde edilen proje şablonları listesinde Sınıf Kitaplığı (.NET Framework) öğesini ve ardından İleri'yi seçin.

  4. Yeni projenizi yapılandırın penceresinde Proje adı için AppLogger yazın ve Oluştur'u seçin.

  5. Projenin düzgün oluşturulduğundan emin olmak için Derleme Çözümü Oluştur'a>tıklayın. DLL, Hata Ayıklama klasöründe bulunur (veya bunun yerine bu yapılandırmayı oluşturursanız Yayın).

  6. (İsteğe bağlı) Bu hızlı başlangıçta, şablon sınıfı kitaplığı paket oluşturmak için yeterli olduğundan NuGet paketi için ek kod yazmanız gerekmez. Ancak, bu örnek paket için bazı işlevsel kodlar istiyorsanız aşağıdaki kodu ekleyin:

    namespace AppLogger
    {
        public class Logger
        {
            public void Log(string text)
            {
                Console.WriteLine(text);
            }
        }
    }
    

    Gerçek bir NuGet paketinde, büyük olasılıkla başkalarının uygulama oluşturabileceği birçok kullanışlı özellik uygulamanız gerekir. Hedef çerçeveleri de ayarlayabilirsiniz. Örnekler için bkz . UWP ve Xamarin.

Paket için proje özelliklerini yapılandırma

NuGet paketi, paket tanımlayıcısı, sürüm numarası, açıklama ve daha fazlası gibi ilgili meta verileri içeren bir .nuspec bildirim (dosya) içerir. Bu meta verilerden bazıları doğrudan proje özelliklerinden çizilebilir ve bu da bunları hem projede hem de bildirimde ayrı olarak güncelleştirmekten kaçınır. Aşağıdaki adımlarda, geçerli özelliklerin nasıl ayarlanacağı açıklanmaktadır:

  1. Proje > Özellikleri'ni ve ardından Uygulama sekmesini seçin.

  2. Derleme adı için paketinize benzersiz bir tanımlayıcı verin. Zaten var olan bir ada sahip bir paket yayımlamaya çalışırsanız bir hata görürsünüz.

    Önemli

    Pakete nuget.org veya kullandığınız konakta benzersiz bir tanımlayıcı vermelisiniz. Aksi takdirde bir hata oluşur. Yayımlama adımı paketi genel olarak görünür hale getirdiğinden, bu hızlı başlangıçta ada Örnek veya Test eklemenizi öneririz.

  3. Bildirime taşınan diğer özellikleri girebileceğiniz bir iletişim kutusu görüntüleyen Derleme Bilgileri'ni seçin (bkz. Değiştirme belirteçleri). En yaygın kullanılan alanlar Başlık, Açıklama, Şirket, Telif Hakkı ve Derleme sürümüdür. Bu özellikler paketinizi yayımladıktan sonra nuget.org gibi bir konakta göründüğü için bunların tamamen açıklayıcı olduğundan emin olun.

    Screenshot showing the Assembly Information page in a .NET Framework project in Visual Studio.

  4. (İsteğe bağlı) Özellikleri doğrudan görmek ve düzenlemek için Proje Proje Dosyasını Düzenle'yi seçerek >projede Özellikler/AssemblyInfo.cs dosyasını açın.

  5. Bu özellikleri ayarladıktan sonra Build>Configuration Manager'dakiEtkin çözüm yapılandırmasını Yayın olarak ayarlayın ve projeyi yeniden oluşturarak güncelleştirilmiş DLL'yi oluşturun.

İlk bildirimi oluşturma

Proje özelliklerini ayarladıktan ve DLL'yi oluşturduktan sonra, artık projeden bir ilk .nuspec dosyası oluşturabilirsiniz. Bu adım, proje dosyasından bilgi çizmek için ilgili değiştirme belirteçlerini içerir.

İlk bildirimi oluşturmak için yalnızca bir kez çalıştırın nuget spec . Paketi güncelleştirirseniz, projenizdeki değerleri değiştirin veya bildirimi doğrudan düzenleyin:

  1. Projeniz Çözüm Gezgini açıkken Araçlar>Komut Satırı>Geliştirici Komut İstemi'ni seçerek bir komut istemi açın.

    Komut istemi, dosyanın bulunduğu AppLogger.csproj proje dizininizde açılır.

  2. Şu komutu çalıştırın: nuget spec AppLogger.csproj.

    NuGet, bu örnekte AppLogger.nuspecprojenin adıyla eşleşen bir bildirim oluşturur. Bildirimdeki değiştirme belirteçlerini de içerir.

  3. İçeriğini incelemek için bir metin düzenleyicisinde açın AppLogger.nuspec ; bu, aşağıdaki koda benzer olacaktır:

    <?xml version="1.0"?>
    <package >
      <metadata>
        <id>Package</id>
        <version>1.0.0</version>
        <authors>Your username</authors>
        <owners>Your username</owners>
        <license type="expression">MIT</license>
        <!-- <icon>icon.png</icon> -->
        <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Package description</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>Copyright 2022</copyright>
        <tags>Tag1 Tag2</tags>
      </metadata>
    </package>
    

Bildirimi düzenleme

  1. Devam etmeden önce aşağıdaki özellikleri düzenleyin. Aksi takdirde, dosyanızda .nuspec varsayılan değerlerle bir NuGet paketi oluşturmaya çalışırsanız bir hata oluşur. Bu özellikler hakkında bilgi için bkz . İsteğe bağlı meta veri öğeleri:

    • licenseUrl
    • projectUrl
    • releaseNotes
    • tags
  2. Genel tüketim için oluşturulmuş paketler için Etiketler özelliğine özellikle dikkat edin. Etiketler, başkalarının paketinizi bulmasına ve ne yaptığını anlamasına yardımcı olur.

  3. .nuspec dosya başvurusunda açıklandığı gibi bildirime şu anda başka öğeler de ekleyebilirsiniz.

  4. Devam etmeden önce dosyayı kaydedin.

Pack komutunu çalıştırma

  1. Projeniz Çözüm Gezgini açıkken Araçlar>Komut Satırı>Geliştirici Komut İstemi'ni seçerek bir komut istemi açın.

    Komut istemi proje dizininizde açılır.

  2. Şu komutu çalıştırın: nuget pack.

    NuGet, geçerli klasörde identifier.version.nupkg biçiminde bir .nupkg dosyası oluşturur.

Paketi yayımlama

Bir .nupkg dosyası oluşturduktan sonra, nuGet CLI'yi nuget.org alınan bir API anahtarıyla kullanarak dosyayı nuget.org yayımlayın. nuget.org için 4.1.0 veya üzerini kullanmanız nuget.exe gerekir.

Paketinizi genel bir galeri yayımlamadan önce test etmek ve doğrulamak isterseniz, nuget.org yerine int.nugettest.org gibi bir test ortamına yükleyebilirsiniz. int.nugettest.org yüklenen paketlerin korunmayabileceğini unutmayın.

Not

  • Nuget.org karşıya yüklenen tüm paketleri virüslere karşı tarar ve virüs bulursa paketleri reddeder. Nuget.org ayrıca mevcut tüm listelenen paketleri düzenli aralıklarla tarar.

  • nuget.org yayımladığınız paketler, listelerini kaldırmadığınız sürece diğer geliştiriciler tarafından genel olarak görülebilir. Paketleri özel olarak barındırmak için bkz . Kendi NuGet akışlarınızı barındırma.

API anahtarınızı alma

  1. nuget.org hesabınızda oturum açın veya henüz hesabınız yoksa bir hesap oluşturun.

  2. Sağ üst köşeden kullanıcı adınızı ve ardından API Anahtarları'nı seçin.

  3. Oluştur'u seçin ve anahtarınız için bir ad belirtin.

  4. Kapsamları Seç'in altında Gönder'i seçin.

  5. Paketleri>Seç Glob Deseni'nin altına * girin.

  6. Oluştur'u belirleyin.

  7. Yeni anahtarı kopyalamak için Kopyala'yı seçin.

    Screenshot that shows the new API key with the Copy link.

Önemli

  • API anahtarınızı her zaman gizli tutun. API anahtarı, herkesin sizin adınıza paketleri yönetmesine olanak tanıyan bir parola gibidir. YANLıŞLıKLA ortaya çıkarsa API anahtarınızı silin veya yeniden oluşturun.
  • Anahtarı daha sonra yeniden kopyalayamadığınızdan anahtarınızı güvenli bir konuma kaydedin. API anahtarı sayfasına dönerseniz, anahtarı kopyalamak için yeniden oluşturmanız gerekir. Paketleri artık göndermek istemiyorsanız API anahtarını da kaldırabilirsiniz.

Kapsam belirleme, farklı amaçlar için ayrı API anahtarları oluşturmanıza olanak tanır. Her anahtarın bir süre sonu zaman çerçevesi vardır ve anahtarın kapsamını belirli paketlere veya glob desenlerine göre ayarlayabilirsiniz. Ayrıca her anahtarın kapsamını belirli işlemlerin kapsamına alırsınız: Yeni paketler ve paket sürümleri gönderme, yalnızca yeni paket sürümleri gönderme veya listeden kaldırma.

Kapsam belirleme yoluyla, kuruluşunuz için paketleri yöneten farklı kişiler için API anahtarları oluşturabilir ve böylece yalnızca ihtiyaç duydukları izinlere sahip olursunuz.

Daha fazla bilgi için bkz . kapsamlı API anahtarları.

NuGet CLI ile yayımlama

NuGet CLI(nuget.exe) kullanmak .NET CLI'yi kullanmaya alternatiftir:

  1. Bir komut istemi açın ve .nupkg dosyasını içeren klasöre geçin.

  2. Aşağıdaki komutu çalıştırın. <Paket dosya adını> paketinizin dosya adıyla değiştirin ve api anahtarı değerini> API anahtarınızla değiştirin<. Paket dosya adı, paket kimliğinizin ve sürüm numaranızın .nupkg uzantısıyla birleştirilmiş halidir. Örneğin, AppLogger.1.0.0.nupkg:

    nuget push <package filename> <api key value> -Source https://api.nuget.org/v3/index.json
    

    Yayımlama işleminin sonucu aşağıdaki gibi görüntülenir:

    Pushing <package filename> to 'https://www.nuget.org/api/v2/package'...
        PUT https://www.nuget.org/api/v2/package/
        Created https://www.nuget.org/api/v2/package/ 6829ms
    Your package was pushed.
    

Daha fazla bilgi için bkz . nuget push.

Yayımlama hataları

Komuttan gelen push hatalar genellikle sorunu gösterir. Örneğin, projenizdeki sürüm numarasını güncelleştirmeyi unutmuş olabilirsiniz, bu nedenle zaten var olan bir paketi yayımlamaya çalışıyorsunuz.

API anahtarınız geçersizse veya süresi dolmuşsa ya da konakta zaten var olan bir tanımlayıcıyı kullanarak bir paket yayımlamaya çalıştığınızda da hatalar görürsünüz. Örneğin, tanımlayıcının AppLogger-test nuget.org zaten var olduğunu varsayalım. Bu tanımlayıcıya sahip bir paket yayımlamaya çalışırsanız, push komut aşağıdaki hatayı verir:

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

Bu hatayı alırsanız süresi dolmamış geçerli bir API anahtarı kullanıp kullanmadığınızı denetleyin. Bu durumda hata, konakta paket tanımlayıcısının zaten var olduğunu gösterir. Hatayı düzeltmek için paket tanımlayıcısını benzersiz olacak şekilde değiştirin, projeyi yeniden derleyin, .nupkg dosyasını yeniden oluşturun ve komutu yeniden deneyinpush.

Yayımlanan paketi yönetme

Paketiniz başarıyla yayımlandığında bir onay e-postası alırsınız. Yeni yayımladığınız paketi görmek için, nuget.org sağ üst köşeden kullanıcı adınızı ve ardından Paketleri Yönet'i seçin.

Not

Paketinizin dizine alınması ve başkalarının bulabileceği arama sonuçlarında görünmesi biraz zaman alabilir. Bu süre boyunca paketiniz Listelenmemiş Paketler altında görünür ve paket sayfası aşağıdaki iletiyi gösterir:

Screenshot showing the publishing message that's displayed when you upload a package to nuget.org.

Şimdi diğer geliştiricilerin projelerinde kullanabileceği nuget.org için bir NuGet paketi yayımladınız.

Kullanışlı olmayan bir paket oluşturduysanız (örneğin, boş bir sınıf kitaplığıyla oluşturulmuş bu örnek paket) veya paketin görünür olmasını istemediğinize karar verirseniz, paketi arama sonuçlarından gizlemek için paketin listesini kaldırabilirsiniz:

  1. Paket, Paketleri Yönet sayfasındaki Yayımlanan Paketler'in altında göründükten sonra paket listesinin yanındaki kalem simgesini seçin.

    Screenshot that shows the Edit icon for a package listing on nuget.org.

  2. Sonraki sayfada Listele'yi seçin, Arama sonuçlarında listele onay kutusunun seçimini kaldırın ve ardından Kaydet'i seçin.

    Screenshot that shows clearing the List checkbox for a package on nuget.org.

Paket artık Paketleri Yönet'teki Listelenmemiş Paketler altında görünür ve artık arama sonuçlarında görünmez.

Not

Test paketinizin nuget.org canlı olmasını önlemek için konumundaki nuget.org test sitesine https://int.nugettest.orggönderebilirsiniz. int.nugettest.org yüklenen paketlerin korunmayabileceğini unutmayın.

Sonraki adımlar

Visual Studio .NET Framework kullanarak NuGet paketi oluşturduğunuz için tebrikler. NuGet CLI ile NuGet paketi oluşturmayı öğrenmek için sonraki makaleye ilerleyin.

NuGet'in sunacağı daha fazlasını keşfetmek için aşağıdaki makalelere bakın: