Aracılığıyla paylaş


Proje başvurusu olarak NuGet ile SDK karşılaştırması

Bu makale, geliştiricilerin yazılımlarını NuGet paketi olarak mı yoksa yazılım geliştirme seti (SDK) olarak mı paketlemeyi seçmelerine yardımcı olmak için tasarlanmıştır. Özellikle, bir Visual Studio projesinde başvurulduğunda ikisi arasındaki farkları açıklar.

  • NuGet , kitaplıkları bir projeye ekleme işlemini basitleştiren bir açık kaynak paket yönetim sistemidir. .NET (.NET Core dahil) için NuGet, kodu paylaşmak için Microsoft tarafından desteklenen mekanizmadır. NuGet, .NET paketlerinin nasıl oluşturulduğunu, barındırılıp kullanılacağını tanımlar ve bu rollerin her biri için araçlar sağlar. Visual Studio'da, Paket Yöneticisi kullanıcı arabirimini kullanarak projeye NuGet paketleri eklersiniz.

  • SDK, Visual Studio'nun tek bir başvuru öğesi olarak değerlendirdiği bir dosya koleksiyonudur. Visual Studio'daki Başvuru Yöneticisi iletişim kutusu, Başvuru Ekle'yi seçtiğinizde geçerli projeyle ilgili tüm SDK'ları listeler. Bir projeye SDK eklediğinizde, Bu SDK'nın tüm içeriğine IntelliSense, Araç Kutusu penceresi, tasarımcılar, Nesne Tarayıcısı, MSBuild, dağıtım, hata ayıklama ve paketleme aracılığıyla erişebilirsiniz.

Hangi mekanizmayı kullanmalıyım?

Aşağıdaki tablo, BIR SDK'nın başvuru özelliklerini NuGet'in başvuran özellikleriyle karşılaştırmanıza yardımcı olur.

Özellik SDK Desteği SDK Notları NuGet Desteği NuGet Notları
Mekanizma bir varlığa başvurur ve ardından tüm dosyalar ve işlevler kullanılabilir. Y Başvuru Yöneticisi iletişim kutusunu kullanarak bir SDK eklersiniz ve geliştirme iş akışı sırasında tüm dosyalar ve işlevler kullanılabilir. Y
MSBuild, derlemeleri ve Windows meta verileri (.winmd) dosyalarını otomatik olarak kullanır. Y SDK'daki başvurular otomatik olarak derleyiciye geçirilir. Y
MSBuild otomatik olarak .h veya .lib dosyalarını tüketir. Y SDKName.props dosyası, Visual Studio'ya otomatik .h veya .lib dosya tüketimi için Visual C++ dizininin nasıl ayarlandığını vb. bildirir. N
MSBuild otomatik olarak .js veya .css dosyalarını tüketir. Y Çözüm Gezgini'da JavaScript SDK başvuru düğümünü genişleterek tek tek .js veya .css dosyalarını gösterebilir ve sonra bu dosyaları kaynak dosyalarına sürükleyerek etiketler oluşturabilirsiniz<source include/>. SDK, F5 ve otomatik paket kurulumunu destekler. Y
MSBuild, denetimi Araç Kutusu'na otomatik olarak ekler. Y Araç Kutusu SDK'ları kullanabilir ve belirttiğiniz sekmelerde denetimleri gösterebilir. N
Mekanizma, uzantılar (VSIX) için Visual Studio Yükleyicisi destekler. Y VSIX, SDK paketleri oluşturmak için özel bir bildirime ve mantığa sahiptir Y VSIX başka bir kurulum programına eklenebilir.
Nesne Tarayıcısı başvuruları numaralandırır. Y Nesne Tarayıcısı, SDK'lardaki başvuruların listesini otomatik olarak alır ve numaralandırır. N
Dosyalar ve bağlantılar Başvuru Yöneticisi iletişim kutusuna otomatik olarak eklenir (yardım bağlantıları, vb. otomatik doldurma) Y Başvuru Yöneticisi iletişim kutusu, yardım bağlantıları ve SDK bağımlılıkları listesinin yanı sıra SDK'ları otomatik olarak numaralandırır. N NuGet kendi NuGet Paketlerini Yönet iletişim kutusunu sağlar.
Mekanizma birden çok mimariyi destekler. Y SDK'lar birden çok yapılandırmayı sevk edebilir. MSBuild, her proje yapılandırması için uygun dosyaları tüketir. N
Mekanizma birden çok yapılandırmayı destekler. Y SDK'lar birden çok yapılandırmayı sevk edebilir. Proje mimarisine bağlı olarak, MSBuild her proje mimarisi için uygun dosyaları kullanır. N
Mekanizma "kopyalanmayacak"ı belirtebilir. Y Dosyaların \redist veya \designtime klasörüne bırakılıp bırakılmadığına bağlı olarak, hangi dosyaların kullanan uygulamanın paketine kopyalanmasını denetleyebilirsiniz. N Paket bildiriminde kopyalanacak dosyaları bildirirsiniz.
İçerik yerelleştirilmiş dosyalarda görünür. Y DAHA iyi bir tasarım zamanı deneyimi için SDK'lardaki yerelleştirilmiş XML belgeleri otomatik olarak eklenir. N
MSBuild, bir SDK'nın birden çok sürümünün aynı anda tüketilmesine destek olun. Y SDK aynı anda birden çok sürümün tüketilmesine destek veriyor. N Bu başvuru değil. Projenizde aynı anda birden fazla NuGet dosyası sürümüne sahip olamazsınız.
Mekanizma geçerli hedef çerçeveleri, Visual Studio sürümlerini ve proje türlerini belirtmeyi destekler. Y Başvuru Yöneticisi iletişim kutusu ve Araç Kutusu yalnızca bir projeye uygulanan SDK'ları gösterir, böylece kullanıcılar uygun SDK'ları daha kolay seçebilir. Y (kısmi) Özet, Hedef Çerçeve'dir. Kullanıcı arabiriminde filtreleme yoktur. Yükleme zamanında hata döndürebilir.
Mekanizma, yerel WinMD'ler için kayıt bilgilerini belirtmeyi destekler. Y .winmd dosyası ile .dll dosyası arasındaki bağıntıyı SDKManifest.xml dosyasında belirtebilirsiniz. N
Mekanizma, diğer SDK'lara bağımlılık belirtmeyi destekler. Y SDK yalnızca kullanıcıya bildirir; kullanıcı bunları yüklemeye ve el ile başvurmaya devam etmelidir. Y NuGet bunları otomatik olarak çeker; kullanıcıya bildirilmiyor.
Mekanizma, uygulama bildirimi ve Çerçeve Kimliği gibi Microsoft Store kavramlarıyla tümleşir. Y Paketleme ve F5'in Mağaza'da bulunan SDK'larla düzgün çalışması için SDK'nın Mağaza'ya özgü kavramları geçirmesi gerekir. N
Mekanizma, Windows 8.x Store uygulamaları için uygulama hata ayıklama işlem hattıyla tümleşir. Y Paketleme ve F5'in Mağaza'da bulunan SDK'larla düzgün çalışması için SDK'nın Mağaza'ya özgü kavramları geçirmesi gerekir. Y NuGet içeriği projenin bir parçası olur. Özel bir F5 değerlendirmesi gerekmez.
Mekanizma, uygulama bildirimleriyle tümleşir. Y Paketleme ve F5'in Mağaza'da bulunan SDK'larla düzgün çalışması için SDK'nın Mağaza'ya özgü kavramları geçirmesi gerekir. Y NuGet içeriği projenin bir parçası olur. Özel bir F5 değerlendirmesi gerekmez.
Mekanizma başvuru olmayan dosyaları dağıtır (örneğin, Üzerinde Windows 8.x Store uygulamalarının testlerinin çalıştırılacağı test çerçevesini dağıtın). Y Dosyaları \redist klasörüne bırakırsanız, dosyalar otomatik olarak dağıtılır. Y
Mekanizma, Visual Studio IDE'de platform SDK'larını otomatik olarak ekler. Y Windows 8 SDK'sını veya Windows Telefon SDK'sını belirli bir düzene sahip belirli bir konuma bırakırsanız, SDK tüm Visual Studio özellikleriyle otomatik olarak tümleştirilir. N
Mekanizma temiz bir geliştirici makinesini destekler. (Başka bir ifadeyle, yükleme gerekmez ve kaynak kodu denetiminden basit alma işlemi çalışır.) N Bir SDK'ya başvurunuza göre çözümünüzü ve SDK'yı ayrı ayrı iade etmeniz gerekir. SDK'yı MSBuild'in SDK'ları yinelediği kayıt defteri olmayan iki varsayılan konumdan iade edebilirsiniz (ayrıntılar için bkz . Yazılım Geliştirme Seti Oluşturma). Alternatif olarak, özel bir konum SDK'lardan oluşuyorsa proje dosyasında aşağıdaki kodu belirtebilirsiniz:

<PropertyGroup>
  <SDKReferenceDirectoryRoot>
  C:\MySDKs
  </SDKReferenceDirectoryRoot>
</PropertyGroup>

Ardından SDK'ları bu konuma denetleyin.
Y Çözümü kullanıma alabilirsiniz ve Visual Studio dosyaları hemen tanır ve üzerinde hareket eder.
Paket yazarlarından oluşan büyük bir topluluğa katılabilirsiniz. Yok Topluluk yeni. Y
Paket tüketicilerinden oluşan büyük bir topluluğa katılabilirsiniz. Yok Topluluk yeni. Y
İş ortaklarından oluşan bir ekosisteme (özel galeriler, depolar vb.) katılabilirsiniz. Yok Kullanılabilir depolar Visual Studio Market, Microsoft İndirme Merkezi ve Microsoft Store'u içerir. Y
Mekanizma, hem paket oluşturma hem de tüketim için sürekli tümleştirme derleme sunucularıyla tümleşir. Y SDK, komut satırındaki iade edilmiş konumu (SDKReferenceDirectoryRoot özelliği) MSBuild'e geçirmelidir. Y
Mekanizma hem kararlı hem de yayın öncesi paket sürümlerini destekler. Y SDK, birden çok sürüme başvuru eklemeyi destekler. Y
Mekanizma, yüklü paketler için otomatik güncelleştirmeyi destekler. Y VSIX olarak veya Visual Studio otomatik güncelleştirmelerinin bir parçası olarak gönderilirse, SDK otomatik bildirimler sağlar. Y
Mekanizma, paketleri oluşturmak ve tüketmek için tek başına bir .exe dosyası içerir. Y SDK, MSBuild.exe dosyasını içerir. Y
Paketler sürüm denetimine iade edilebilir. Y Belgeler düğümü dışında hiçbir şeyi iade edemeyebilirsiniz; bu da Uzantı SDK'larının iade edilmeyebileceği anlamına gelir. Uzantı SDK'sının boyutu büyük olabilir. Y
Paketleri oluşturmak ve kullanmak için Bir PowerShell arabirimi kullanabilirsiniz. Y (tüketim), N (oluşturma) SDK oluşturmak için araç yoktur. Tüketim, komut satırında MSBuild'i yürütür. Y
Hata ayıklama desteği için Sembol paketi kullanabilirsiniz. Y .pdb dosyalarını SDK'ya bırakırsanız, dosyalar otomatik olarak alınır. Y
Mekanizma, paket yöneticisi otomatik güncelleştirmelerini destekler. Yok SDK, MSBuild ile düzeltilir. Y
Mekanizma basit bir bildirim biçimini destekler. Y SDKManifest.xml birçok özniteliği destekler, ancak genellikle küçük bir alt küme gereklidir. Y
Mekanizma tüm Visual Studio sürümlerinde kullanılabilir. Y SDK tüm Visual Studio sürümlerini destekler. Y NuGet tüm Visual Studio sürümlerini destekler.