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

.NET Framework Sınıf NuGet'den bir Windows paketi oluşturmak için Visual Studio'de DLL'nuget.exe oluşturmayı ve yayımlamayı içerir.

Not

Bu Hızlı Başlangıç, yalnızca Visual Studio 2017 ve daha yüksek sürümler Windows geçerlidir. Mac için Visual Studio burada açıklanan özellikleri içermez. Bunun yerine dotnet CLI araçlarını kullanın.

Önkoşullar

  1. herhangi bir sürümüyle Visual Studio 2017 veya daha yüksek visualstudio.com yükleyin. NET ile ilgili iş yükü. Visual Studio 2017, bir .NET NuGet yük dengeleme özelliklerini otomatik olarak içerir.

  2. Cli'ya yüklemek için nuget.org dosyasını indirin, bu dosyayı uygun bir klasöre kaydedin ve bu klasörü PATH ortam nuget.exenuget.exe.exe değişkeninize yükleyin.

  3. Henüz bir hesabınız nuget.org ücretsiz bir hesap için kaydolabilirsiniz. Yeni hesap oluşturmak bir onay e-postası gönderir. Paketi karşıya yükleymeden önce hesabı onaylamanız gerekir.

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

Var olan bir .NET Framework Sınıf Kitaplığı projesini, paketley istediğiniz kod için kullanabilir veya aşağıdaki gibi basit bir tane oluşturabilirsiniz:

  1. Bu Visual Studio Dosya > YeniProject'yi seçin, > düğümünü seçin, "Sınıf Kitaplığı (.NET Framework)" şablonunu seçin, projeye AppLogger adını girin ve Tamam'a tıklayın.

  2. Sonuçta elde edilen proje dosyasına sağ tıklayın ve projenin düzgün şekilde oluşturulduktan emin olmak için Derleme'yi seçin. DLL, Hata Ayıklama klasöründe (veya yapılandırmayı oluşturursanız Yayınla) içinde bulunur.

Gerçek bir NuGet paketinde, elbette başkalarının uygulama oluşturması için birçok yararlı özellik uygulayabilirsiniz. Ayrıca hedef çerçeveleri de nasıl olduğunuz gibi ayarlayın. Örneğin, UWP ve Xamarin kılavuzlarına bakın.

Ancak bu kılavuzda paket oluşturmak için şablondan bir sınıf kitaplığı yeterli olduğundan ek kod yazmazsınız. Yine de paket için işlevsel kodlar kullanmak için aşağıdakini kullanın:

using System;

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

İpucu

Aksini seçmek için bir nedenin yoksa, .NET Standard çok çeşitli NuGet uyumluluk sağladığı için bu, NuGet paketleri için tercih edilen hedeftir. Bkz. Visual Studio (.NET Standard) kullanarak paket oluşturma ve yayımlama.

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

Bir NuGet paketi, paket tanımlayıcısı, sürüm numarası, açıklama ve daha fazlası gibi ilgili meta verileri içeren bir bildirim .nuspec (dosya) içerir. Bunlardan bazıları doğrudan proje özelliklerinden çekilebilir ve bu da hem projede hem de bildirimde bunları ayrı olarak güncelleştirmek zorunda kalmamaktır. Bu bölümde, uygun özelliklerin ayar yeri açık bir şekilde açık bir şekilde anlattır.

  1. Project menü komutunu ve ardından Uygulama sekmesini seçin.

  2. Derleme adı alanında paketinize benzersiz bir tanımlayıcı girin.

    Önemli

    Pakete, uygulama veya kullanmakta nuget.org benzersiz bir tanımlayıcı ver gerekir. Bu izlenecek yol için, sonraki yayımlama adımı paketi genel olarak görünür hale gelir (ancak bunu herkesin kullanma ihtimali düşük olsa da) adına "Örnek" veya "Test" adını dahil etmek önerilir.

    Zaten var olan bir adla bir paket yayımlamaya çalışırken bir hatayla karşılaştınız.

  3. Bildirime taşıyan diğer özellikleri girebilirsiniz (bkz. .nuspecdosya başvurusu - değiştirme belirteçleri) bir iletişim kutusu getiren Derleme Bilgileri... düğmesini seçin. En yaygın kullanılan alanlar Başlık,Açıklama,Şirket,TelifHakkı ve Derleme sürümü'dür. Bu özellikler nihai olarak paketiniz gibi bir konakta nuget.org, dolayısıyla tamamen açıklayıcı olduğundan emin olun.

    Visual Studio'de .NET Framework projesinde derleme bilgileri

  4. İsteğe bağlı: Özellikleri doğrudan görmek ve düzenlemek için Properties/AssemblyInfo.cs projesinde dosyasını açın.

  5. Özellikler ayar olduğunda, proje yapılandırmasını Yayınla olarak ayarlayın ve güncelleştirilmiş DLL'yi oluşturmak için projeyi yeniden oluşturun.

İlk bildirimi oluşturma

Elde bir DLL ve proje özellikleri ayarlanmışken, artık projeden nuget spec bir başlangıç dosyası oluşturmak için komutunu .nuspec kullanırsanız. Bu adım, proje dosyasından bilgi çekmek için ilgili değiştirme belirteçlerini içerir.

İlk bildirimi nuget spec oluşturmak için yalnızca bir kez çalıştırın. Paketi güncelleştiriyorken projenizin değerlerini değiştirebilir veya bildirimi doğrudan düzenleyebilirsiniz.

  1. Bir komut istemi açın ve dosya içeren proje klasörüne AppLogger.csproj gidin.

  2. Şu komutu çalıştırın: nuget spec AppLogger.csproj . Bir proje belirterek NuGet, bu durumda projenin adıyla eşleşen bir bildirim AppLogger.nuspec oluşturur. Ayrıca bildirime değiştirme belirteçleri de dahildir.

  3. İçeriğini AppLogger.nuspec incelemek için bir metin düzenleyicisinde açın; bu, aşağıdaki gibi görün olmalıdır:

    <?xml version="1.0"?>
    <package >
      <metadata>
        <id>Package</id>
        <version>1.0.0</version>
        <authors>YourUsername</authors>
        <owners>YourUsername</owners>
        <license type="expression">MIT</license>
        <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
        <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Package description</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>Copyright 2019</copyright>
        <tags>Tag1 Tag2</tags>
      </metadata>
    </package>
    

Bildirimi düzenleme

  1. NuGet dosyanız içinde varsayılan değerlerle bir paket oluşturmayı denersiniz, bu nedenle devam etmeden önce aşağıdaki .nuspec alanları düzenlemeniz gerekir. Bunların nasıl kullanıldıklarının açıklaması için bkz. .nuspec dosya başvurusu - isteğe bağlı meta veri öğeleri.

    • licenseUrl
    • projectUrl
    • iconUrl
    • releaseNotes
    • etiketler
  2. Genel tüketime açık paketler için Etiketler özelliğine özellikle dikkat edin çünkü etiketler başkalarının paketinizi nuget.org kaynaklara bulmanıza ve ne yaptığını anlamanıza yardımcı olur.

  3. Ayrıca, .nuspecdosya başvurusunda açıklandığı gibi bildirime şu anda başka öğeler de ebilirsiniz.

  4. Devam etmeden önce dosyayı kaydedin.

Pack komutunu çalıştırın

  1. Dosyanızı içeren klasördeki bir komut .nuspec isteminden komutunu nuget pack çalıştırın.

  2. NuGet, .nupkg.nupkgşeklinde bir dosya oluşturur ve bunu geçerli klasörde bulabilirsiniz.

Paketi yayımlama

Bir dosyanız .nupkg olduktan sonra, dosyanın nuget.org API anahtarıyla kullanarak nuget.exe dosyayı nuget.org. Daha nuget.org nuget.exe 4.1.0 veya daha yüksek bir değer kullan gerekir.

Not

Virüs taraması:Virüs taraması: Nuget.org yüklenen tüm paketler virüs taramasıyla taranır ve herhangi bir virüs bulunursa reddedilir. Listede listelenen tüm nuget.org düzenli aralıklarla da taranır.

Nuget.org yayımlanan paketler, siz listelerini geri alamayacağınız sürece diğer geliştiricilere de genel olarak görünür. Paketleri özel olarak barındırmak için bkz. Paketleri barındırma.

API anahtarınızı edinme

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

    Hesap oluşturma hakkında daha fazla bilgi için bkz. Bireysel hesaplar.

  2. Kullanıcı adını seçin (sağ üst köşede) ve ardından API Anahtarları'ı seçin.

  3. Oluştur'ıseçin, anahtarınız için bir ad girin, Kapsamları Seç Push seçeneğini seçin. Globdeseni için * girin ve Oluştur'a basın. (Kapsamlar hakkında daha fazla bilgi için aşağıya bakın.)

  4. Anahtar oluşturulduktan sonra Kopyala'ya seçerek CLI'da ihtiyacınız olan erişim anahtarını alın:

    API anahtarını panoya kopyalama

Uyarı

API anahtarınızı her zaman gizli tutma! API anahtarınızı herkesin sizin adınıza paketleri yönetmesini sağlayan bir parola olarak davranma. YANLıŞLıKLA ortaya çıkarsa API anahtarınızı silmeniz veya yeniden oluşturmanız gerekir.

Önemli

Anahtarı daha sonra yeniden kopyalayıp kopyalayamazsınız, çünkü anahtarınızı güvenli bir konuma kaydedin. API anahtarı sayfasına geri dönersiniz, kopyalamak için anahtarı yeniden oluşturmanız gerekir. Artık paketleri itmek istemiyorsanız API anahtarını da kaldırabilirsiniz.

Bu sayede farklı amaçlar için ayrı API anahtarları oluşturabilirsiniz. Her anahtarın süre sonu zaman çerçevesi vardır ve kapsamı belirli paketler (veya glob desenleri) olabilir. Her anahtarın kapsamı da belirli işlemlere göredir: yeni paketleri ve güncelleştirmeleri, yalnızca güncelleştirmeleri itme veya listeden. Bu nedenle, yalnızca ihtiyaçları olan izinlere sahip olacak şekilde, şifreleme aracılığıyla, kuruluş için paketleri yöneten farklı kişiler için API anahtarları oluşturabilirsiniz. Daha fazla bilgi için bkz. kapsamlı API anahtarları.

Nuget push ile yayımlama

  1. Bir komut satırı açın ve dosyasını içeren klasöre .nupkg gidin.

  2. Paket adını belirterek ve anahtar değerini API anahtarınız ile değiştirerek aşağıdaki komutu çalıştırın:

    nuget push AppLogger.1.0.0.nupkg qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -Source https://api.nuget.org/v3/index.json
    
  3. nuget.exe yayımlama işleminin sonuçlarını görüntüler:

    Pushing AppLogger.1.0.0.nupkg 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.
    

Bkz. NuGet Push.

Yayımlama hataları

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

Ayrıca, konakta zaten bulunan bir tanımlayıcıyı kullanarak bir paketi yayımlamaya çalışırken hatalar görürsünüz. Örneğin, "Appgünlükçü" adı zaten var. Böyle bir durumda, 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.).

Az önce oluşturduğunuz geçerli bir API anahtarı kullanıyorsanız, bu ileti, hatanın "izin" bölümünde tamamen açık olmayan bir adlandırma çakışması olduğunu gösterir. Paket tanımlayıcısını değiştirin, projeyi yeniden derleyin, dosyayı yeniden oluşturun .nupkg ve komutu yeniden deneyin push .

Yayınlanan paketi yönetme

Nuget.org adresindeki profilinizden, yeni yayımladığınız bir tane görmek için paketleri Yönet ' i seçin. Ayrıca bir onay e-postası alırsınız. 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, paket sayfanız aşağıdaki iletiyi gösterir:

Bu paketin henüz dizini oluşturulmadı. Bu, arama sonuçlarında görünür ve dizin oluşturma tamamlandıktan sonra yükleme/geri yükleme için kullanılabilir olacaktır.

Hepsi bu! yalnızca ilk NuGet paketinizi, diğer geliştiricilerin kendi projelerinde kullanabileceği nuget.org için yayımladınız.

Bu kılavuzda gerçekten yararlı olmayan bir paket (örneğin, boş bir sınıf kitaplığıyla oluşturulmuş bir paket) oluşturduysanız, arama sonuçlarından gizlemek için paketi listelemeniz gerekir:

  1. Nuget.org 'de, Kullanıcı adınızı (sayfanın sağ üst köşesinde) seçin ve ardından paketleri Yönet' i seçin.

  2. Yayımlanmış altında listeden kaldırmak istediğiniz paketi bulun ve sağdaki çöp kutusu simgesini seçin:

    Nuget.org üzerinde bir paket listesi için çöp kutusu simgesi gösteriliyor

  3. Sonraki sayfada, arama sonuçlarında List (paket-adı) etiketli kutuyu temizleyin ve Kaydet' i seçin:

    Nuget.org üzerindeki bir paketin liste onay kutusunu temizleme

Sonraki adımlar

ilk NuGet paketinizi oluştururken tebrikler!

NuGet sunabileceği daha fazla incelemek için aşağıdaki bağlantıları seçin.