Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
NuGet 2.0 Sürüm Notları | NuGet 2.2 Sürüm Notları
NuGet 2.1, 4 Ekim 2012'de yayımlandı.
Hiyerarşik Nuget.Config
NuGet 2.1, dosya aramak için NuGet.Config klasör yapısında yinelemeli olarak yürüme ve ardından bulunan tüm dosyalar kümesinden yapılandırmayı oluşturma yoluyla NuGet ayarlarını denetleme konusunda daha fazla esneklik sağlar. Örneğin, bir ekibin diğer iç bağımlılıkların CI derlemeleri için bir iç paket deposuna sahip olduğu senaryoyu göz önünde bulundurun. Tek bir projenin klasör yapısı aşağıdaki gibi görünebilir:
C:\
C:\myteam\
C:\myteam\solution1
C:\myteam\solution1\project1
Ayrıca, çözüm için paket geri yükleme etkinleştirildiyse aşağıdaki klasör de bulunur:
C:\myteam\solution1\.nuget
Ekibin üzerinde çalıştığı tüm projeler için ekibin iç paket deposunu kullanılabilir hale getirmek için, makinedeki her proje için kullanılabilir hale getirmemek için yeni bir Nuget.Config dosyası oluşturup c:\myteam klasörüne yerleştirebiliriz. Proje başına bir paketler klasörü belirlenemez.
<configuration>
<packageSources>
<add key="Official project team source" value="http://teamserver/api/v2/" />
</packageSources>
<disabledPackageSources />
<activePackageSource>
<add key="Official project team source" value="http://teamserver/api/v2/" />
</activePackageSource>
</configuration>
Artık aşağıda gösterildiği gibi c:\myteam altındaki herhangi bir klasörden 'nuget.exe sources' komutu çalıştırılarak kaynağın eklendiğini görebiliriz:
NuGet.Config dosyaları şu sırayla aranıyor:
.nuget\Nuget.Config- Proje klasöründen köke doğru özyinelemeli tarama
- Genel
Nuget.Config(%appdata%\NuGet\Nuget.Config)
Yapılandırmalar ters sırada uygulanır; yani yukarıdaki sıralamaya göre önce genel Nuget.Config, ardından kökten proje klasörüne kadar bulunan Nuget.Config dosyaları ve ardından .nuget\Nuget.Config uygulanır. Özellikle, <clear/> öğesini yapılandırmadan bir dizi öğeyi kaldırmak için kullanıyorsanız önemlidir.
'packages' Klasör Konumunu Belirtin
Geçmişte NuGet, çözüm kök klasörünün altında bulunan bilinen bir 'packages' klasöründen çözümün paketlerini yönetmiştir. NuGet paketlerinin yüklü olduğu birçok farklı çözümü olan geliştirme ekipleri için bu, aynı paketin dosya sistemindeki birçok farklı yere yüklenmesine neden olabilir.
NuGet 2.1, dosyadaki öğesi repositoryPath aracılığıyla NuGet.Config packages klasörünün konumu üzerinde daha ayrıntılı denetim sağlar. Hiyerarşik Nuget.Config desteğinin önceki örneğini temel alan C:\myteam\ altındaki tüm projelerin aynı paketler klasörünü paylaşmasını istediğimizi varsayalım. Bunu başarmak için, aşağıdaki kaydı c:\myteam\Nuget.Config öğesine eklemeniz yeterlidir.
<configuration>
<config>
<add key="repositoryPath" value="C:\myteam\teampackages" />
</config>
...
</configuration>
Bu örnekte, paylaşılan Nuget.Config dosya C:\myteam altında oluşturulan her proje için derinliğe bakılmaksızın paylaşılan paketler klasörünü belirtir. Çözüm kökünüzün altında mevcut bir packages klasörünüz varsa, NuGet paketleri yeni konuma yerleştirmeden önce bu klasörü silmeniz gerektiğini unutmayın.
Taşınabilir Kitaplık desteği
Taşınabilir kitaplıklar ilk olarak .NET 4 ile sunulan ve the.NET Framework sürümlerinden Silverlight'a, Windows Phone'a ve hatta Xbox 360'a (şu anda NuGet, Xbox taşınabilir kitaplık hedefini desteklemese de) farklı Microsoft platformlarında değişiklik yapmadan çalışabilen derlemeler oluşturmanıza olanak tanıyan bir özelliktir. NuGet 2.1, çerçeve sürümleri ve profilleri için paket kurallarını genişleterek artık bileşik çerçeve ve profil hedef lib klasörlerine sahip paketler oluşturmanızı sağlayarak taşınabilir kitaplıkları destekliyor.
Örnek olarak, aşağıdaki taşınabilir sınıf kitaplığının kullanılabilir hedef platformlarını göz önünde bulundurun.
Kitaplık oluşturulduktan ve komutu nuget.exe pack MyPortableProject.csproj çalıştırıldıktan sonra, oluşturulan NuGet paketinin içeriği incelenerek yeni taşınabilir kitaplık paketi klasör yapısı görülebilir.
Gördüğünüz gibi taşınabilir kitaplık klasör adı kuralı, çerçeve tanımlayıcılarının mevcut çerçeve adını ve sürüm kurallarını izlediği 'portable-{framework 1}+{framework n}' desenini izler. Ad ve sürüm kuralları için bir özel durum, Windows Phone için kullanılan çerçeve tanımlayıcısında bulunur. Bu takma ad 'wp' çerçeve adını (wp7, wp71 veya wp8) kullanmalıdır. Örneğin ,'silverlight-wp7' kullanılması hataya neden olur.
Bu klasör yapısından oluşturulan paketi yüklerken, NuGet artık çerçeve ve profil kurallarını klasör adında belirtildiği gibi birden çok hedefe uygulayabilir. NuGet'in eşleştirme kurallarının arkasında , "daha belirli" hedeflerin "daha az belirli" hedeflerden öncelikli olacağı ilkesi yer alır. Bu, belirli bir platformu hedefleyen takma adlar, her ikisi de bir projeyle uyumluysa taşınabilir olanlar yerine her zaman tercih edilir. Ayrıca, bir projeyle birden çok taşınabilir hedef uyumluysa, NuGet desteklenen platform kümesinin pakete başvuran projeye "en yakın" olduğu hedefi tercih eder.
Windows 8 ve Windows Phone 8 Projelerini Hedefleme
NuGet 2.1, taşınabilir kitaplık projelerini hedeflemeye yönelik destek eklemeye ek olarak, hem Windows 8 Mağazası hem de Windows Phone 8 projeleri için yeni çerçeve adlarının yanı sıra ilgili platformların gelecekteki sürümlerinde yönetilmesi daha kolay olacak Windows Mağazası ve Windows Phone projeleri için bazı yeni genel adlar sağlar.
Windows 8 Mağazası uygulamaları için tanımlayıcılar aşağıdaki gibi görünür:
| NuGet 2.0 ve öncesi | NuGet 2.1 |
|---|---|
| winRT45, . NETCore45 | Windows, Windows8, Win, Win8 |
Windows Phone projeleri için tanımlayıcılar aşağıdaki gibi görünür:
| Telefon işletim sistemi | NuGet 2.0 ve öncesi | NuGet 2.1 |
|---|---|---|
| Windows Phone 7 | silverlight3-wp | wp, wp7, WindowsPhone, WindowsPhone7 |
| Windows Phone 7.5 (Mango) | silverlight4-wp71 | wp71, WindowsPhone71 |
| Windows Phone 8 | (desteklenmez) | wp8, WindowsPhone8 |
Yukarıdaki tüm değişikliklerde, eski çerçeve adları NuGet 2.1 tarafından tam olarak desteklenmeye devam edecektir. İlerleyen dönemde, ilgili platformların gelecekteki sürümlerinde daha kararlı ve tutarlı olacakları için yeni adlar kullanılmalıdır. Ancak yeni adlar NuGet'in 2.1 öncesi sürümlerinde *desteklenmez, bu nedenle değişikliğin ne zaman gerçekleştirileceğini uygun şekilde planlayın.
Paket Yöneticisi Diyalog Kutusunda Arama İyileştirmeleri
Son birkaç yinelemede NuGet galerisinde paket aramalarının hızını ve ilgi düzeyini büyük ölçüde geliştiren değişiklikler yapılmıştır. Ancak bu iyileştirmeler nuget.org Web sitesiyle sınırlıydı. NuGet 2.1, gelişmiş arama deneyimini NuGet paket yöneticisi iletişim kutusu aracılığıyla kullanılabilir hale getirir. Örneğin, Windows Azure Önbelleğe Alma Önizleme paketini bulmak istediğinizi düşünün. Bu paket için makul bir arama sorgusu "Azure Cache" olabilir. Paket yöneticisi iletişim kutusunun önceki sürümlerinde, istenen paket sonuçların ilk sayfasında bile listelenmeyecekti. Ancak, NuGet 2.1'de istenen paket artık arama sonuçlarının en üstünde gösterilir.
Paket Güncelleştirmesini Zorla
NuGet 2.1'in öncesinde NuGet, yüksek bir sürüm numarası olmadığında paketi güncelleştirmeyi atlardı. Bu, özellikle ekibin her derlemede paket sürüm numarasının artırılmasını istemediği derleme veya CI senaryolarında belirli senaryolar için sürtüşmeler yaratmıştı. İstenen davranış, ne olursa olsun bir güncelleştirmeyi zorlamaktı. NuGet 2.1 bunu 'yeniden yükleme' bayrağıyla giderir. Örneğin, NuGet'in önceki sürümleri, daha yeni bir paket sürümü olmayan bir paketi güncelleştirmeye çalışırken aşağıdakiyle sonuçlanır:
PM> Update-Package Moq
No updates available for 'Moq' in project 'MySolution.MyConsole'.
Yeniden yükleme bayrağıyla, paket daha yeni bir sürüm olup olmadığına bakılmaksızın güncelleştirilir.
PM> Update-Package Moq -Reinstall
Successfully removed 'Moq 4.0.10827' from MySolution.MyConsole.
Successfully uninstalled 'Moq 4.0.10827'.
Successfully installed 'Moq 4.0.10827'.
Successfully added 'Moq 4.0.10827' to MySolution.MyConsole.
Yeniden yükleme bayrağının yararlı olduğu bir diğer senaryo da çerçevenin yeniden hedeflenmesidir. Projenin hedef platformunu değiştirirken (örneğin, .NET 4'ten .NET 4.5'e), Update-Package -Reinstall, proje dahilindeki tüm yüklü NuGet paketleri için başvuruları doğru kütüphanelere güncelleyebilir.
Visual Studio İçinde Paket Kaynaklarını Düzenleme
NuGet'in önceki sürümlerinde, Visual Studio seçenekleri iletişim kutusunun içinden bir paket kaynağını güncelleştirmek için paket kaynağının silinmesi ve yeniden eklenmesi gerekiyordu. NuGet 2.1, yapılandırma kullanıcı arabiriminin birinci sınıf işlevi olarak güncelleştirmeyi destekleyerek bu iş akışını geliştirir.
Hata Düzeltmeleri
NuGet 2.1 birçok hata düzeltmesi içerir. NuGet 2.0'da sabit olan iş öğelerinin tam listesini görmek için lütfen [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Fixed&type=All&priority=All&release=NuGet%202.1&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0) görüntüleyin.