NuGet 2.7 Sürüm Notları
WebMatrix için NuGet 2.6.1 Sürüm Notları | NuGet 2.7.1 Sürüm Notları
NuGet 2.7, 22 Ağustos 2013'te yayımlandı.
Aşağıdaki dış katkıda bulunanlara NuGet 2.7'ye yaptıkları önemli katkılar için teşekkür ederiz:
[Mike Roth](http://www.codeplex.com/site/users/view/mxrss)
(@mxrss)- Paketleri listelerken Lisans URL'sini göster ve ayrıntı ayrıntılarıyla anlatılır.
[Adam Ralph](http://www.codeplex.com/site/users/view/adamralph)
(@adamralph)[#1956](http://nuget.codeplex.com/workitem/1956)
- 'apackages.config
developmentDependency özniteliği ekleyin ve bunu yalnızca çalışma zamanı paketlerini eklemek için pack komutunda kullanın
[Rafael Nicoletti](http://www.codeplex.com/site/users/view/tkrafael)
(@tkrafael)- nuget.exe pack komutunda yinelenen Özellikler anahtarından kaçının.
[Ben Phegan](http://www.codeplex.com/site/users/view/benphegan)
(@BenPhegan)[#2610](http://nuget.codeplex.com/workitem/2610)
- Makine önbelleği boyutunu 200'e yükseltin.
[Slava Trenogin](http://www.codeplex.com/site/users/view/derigel)
(@derigel)[#3217](http://nuget.codeplex.com/workitem/3217)
- Yanlış sekmede güncelleştirmeleri gösteren NuGet iletişim kutusunu düzeltin- ProjectManager'da Project.TargetFramework null olabilir düzeltme
[#3248](http://nuget.codeplex.com/workitem/3248)
- SharedPackageRepository FindPackage/FindPackagesById'nin mevcut olmayan packageId'de başarısız olmasını düzeltme
[Kevin Boyle](http://www.codeplex.com/site/users/view/KevinBoyleRG)
(@kevfromireland)[#3234](http://nuget.codeplex.com/workitem/3234)
- Nomad projesi desteğini etkinleştirme
[Corin Blaikie](http://www.codeplex.com/site/users/view/corinblaikie)
(@corinblaikie)[#3252](http://nuget.codeplex.com/workitem/3252)
- Dosya mevcut olmadığında 0 çıkış koduyla anında iletme komutunun başarısız olduğunu düzeltin.
[Martin Veselý](http://www.codeplex.com/site/users/view/veselkamartin)
[#3226](http://nuget.codeplex.com/workitem/3226)
- Bir proje bir veritabanı projesine başvurduğunda Add-BindingRedirect komutuyla ilgili hatayı düzeltin.
[Miroslav Bajtos](http://www.codeplex.com/site/users/view/miroslavbajtos)
(@bajtos)[#2891](http://nuget.codeplex.com/workitem/2891)
- 'exclude' özniteliğindeki nuget.pack ayrıştırma joker karakteri hatası yanlış düzeltildi.
[Justin Dearing](http://www.codeplex.com/site/users/view/zippy1981)
(@zippy1981)[#3307](http://nuget.codeplex.com/workitem/3307)
- Düzeltme hatasıNuGet.targets
paketleri geri yüklerken nuget.exe $(Platform) geçirmiyor.
[Brian Federici](http://www.codeplex.com/site/users/view/benerdin)
[#3294](http://nuget.codeplex.com/workitem/3294)
- Nuget.exe paket komutunda, aynı ada ancak farklı büyük/küçük harfe sahip dosyaların eklenmesine izin veren ve sonunda "Öğe zaten var" özel durumu oluşturacak olan hatayı düzeltin.
[Daniel Cazzulino](http://www.codeplex.com/site/users/view/dcazzulino)
(@kzu)[#2990](http://nuget.codeplex.com/workitem/2990)
- NetPortableProfile sınıfına Version özelliği ekleyin.
[David Simner](https://www.codeplex.com/site/users/view/DavidSimner)
[#3460](https://nuget.codeplex.com/workitem/3460)
- RequireApiKey = true, ancak X-NUGET-APIKEY üst bilgisi yoksa NullReferenceException hatasını düzeltin
[Michael Friis](https://www.codeplex.com/site/users/view/friism)
(@friism)[#3278](https://nuget.codeplex.com/workitem/3278)
- MonoDevelop'ta düzgün çalışması için NuGet.Build targets dosyasını düzeltir
[Pranav Krishnamoorthy](https://www.codeplex.com/site/users/view/pranavkm)
(@pranav_km)- Paralelleştirmeyi artırarak Geri Yükleme komut performansını geliştirme
NuGet 2.7, paket geri yükleme için yeni bir yaklaşım sunar ve ayrıca büyük bir engelin üstesinden gelir: Paket geri yükleme onayı artık varsayılan olarak açıktır! Yeni yaklaşımın ve örtük onayın birleşimi, paket geri yükleme senaryolarını önemli ölçüde basitleştirecektir.
NuGet sürüm 2.0, 2.1, 2.2, 2.5 ve 2.6 ile kullanıcıların derleme sırasında NuGet'in eksik paketleri indirmesine açıkça izin vermeleri gerekiyordu. Bu onay açıkça verilmemişse, kullanıcı onay verene kadar paket geri yüklemeyi etkinleştirmiş olan çözümler derlenemedi.
NuGet 2.7'den başlayarak, visual studio'daki NuGet ayarlarındaki onay kutusunu kullanarak kullanıcıların istenirse paket geri yüklemesini açıkça geri çevirmesine izin verirken, paket geri yükleme onayı varsayılan olarak AÇIK olur. Bu örtük onay değişikliği, aşağıdaki ortamlardaKi NuGet'i etkiler:
- Visual Studio 2013 Preview
- Visual Studio 2012
- Visual Studio 2010
- nuget.exe Komut Satırı Yardımcı Programı
NuGet 2.7'den başlayarak, çözüm için paket geri yükleme açıkça etkinleştirilmemiş olsa bile NuGet, Visual Studio'da derleme sırasında eksik paketleri otomatik olarak indirir. Bu Otomatik Paket Geri Yükleme, bir proje veya çözüm oluşturduğunuzda ancak MSBuild çağrılmadan önce Visual Studio'da gerçekleşir. Bu, birkaç önemli avantaj sağlar:
- Çözümünüzde "NuGet Paketi Geri Yüklemesini Etkinleştir" hareketini kullanmanıza gerek yok
- Projelerin değiştirilmesi gerekmez ve NuGet paket geri yüklemenin etkinleştirildiğinden emin olmak için projenizde değişiklik yapmaz
- Props/targets dosyaları için MSBuild içeri aktarmalarını içerenler de dahil olmak üzere tüm NuGet paketleri, MSBuild çağrılmadan önce geri yüklenecek ve bu props/hedeflerin derleme sırasında düzgün bir şekilde tanınması sağlanacaktır
Visual Studio'da Otomatik Paket Geri Yükleme'yi kullanmak için yalnızca bir (içinde) eylem gerçekleştirmeniz yeterlidir:
- Klasörünüzü
packages
iade etmeyin
Kaynak denetiminden klasörünüzü atlamanın packages
birkaç yolu vardır. Daha fazla bilgi için Paketler ve Kaynak Denetimi konusuna bakın.
Tüm kullanıcılar otomatik paket geri yükleme iznini örtük olarak kabul etse de, Visual Studio'daki Paket Yöneticisi ayarlarını kolayca geri çevirebilirsiniz.
NuGet 2.7, nuget.exe için yeni bir özellik tanıtır: nuget.exe restore
Bu yeni Geri Yükle komutu, bir çözüm dosyasını veya klasörünü bağımsız değişken olarak kabul ederek tek bir komutla bir çözüm için tüm paketleri kolayca geri yüklemenize olanak tanır. Ayrıca, geçerli klasörde yalnızca tek bir çözüm olduğunda bu bağımsız değişken gösterilir. Bu, aşağıdakilerin tümünün tek bir çözüm dosyası (MySolution.sln) içeren bir klasörden çalıştığı anlamına gelir:
- nuget.exe geri yükleme MySolution.sln
- nuget.exe geri yükleyin.
- nuget.exe geri yükleme
Geri Yükle komutu çözüm dosyasını açar ve çözümdeki tüm projeleri bulur. Buradan, projelerin packages.config
her biri için dosyaları bulur ve bulunan tüm paketleri geri yükler. Ayrıca dosyada .nuget\packages.config
bulunan çözüm düzeyinde paketleri de geri yükler. Yeni Geri Yükleme komutu hakkında daha fazla bilgiyi Komut Satırı Başvurusu'nda bulabilirsiniz.
Paket Geri Yükleme'de yapılan bu değişiklikler, yeni bir iş akışına neden olduğu için heyecanlıyız. Paketlerinizi kaynak denetiminden atlamak istiyorsanız klasörü işlemezsiniz packages
. Çözümü açıp oluşturan Visual Studio kullanıcıları paketlerin otomatik olarak geri yüklenip yüklenmediğini görür. Komut satırı derlemeleri için çağırmadan msbuild
önce komutunu çağırmanız nuget.exe restore
yeterlidir. Artık çözümünüzde "NuGet Paketi Geri Yüklemesini Etkinleştir" hareketini kullanmayı hatırlamanız gerekmez ve artık derlemeyi değiştirmek için projelerinizi değiştirmemiz gerekmez. Ayrıca bu, MSBuild içeri aktarmalarını içeren paketler için, özellikle NuGet'in \build klasöründen props/targets dosyalarını otomatik olarak içeri aktarmaya yönelik son özelliği aracılığıyla eklenen içeri aktarmalar için çok daha iyi bir deneyim sunar.
Kendi yaptığımız çalışmalara ek olarak, bazı önemli iş ortaklarıyla da bu yeni yaklaşımı ortaya çıkarmak için çalışıyoruz. Henüz bunların hiçbiri için somut zaman çizelgelerimiz yok, ancak her ortak yeni yaklaşımla ilgili olduğumuz kadar heyecanlı.
- Team Foundation Hizmeti - Çağrısının varsayılan derleme senaryolarıyla tümleştirilmesi için
nuget.exe restore
çalışmaktadır. - Windows Azure Web Siteleri - Projenizi Azure'a göndermenize ve
nuget.exe restore
web sitenizi oluşturmadan önce aramanıza olanak sağlamak için çalışır. - TeamCity - TeamCity 8.x için NuGet Yükleyici eklentilerini güncelleştiriyorlar
- AppHarbor - Deponuzu AppHarbor'a göndermenize ve
nuget.exe restore
çözümünüz derilmeden önce aramanıza olanak sağlamak için çalışıyorlar.
Yukarıdaki iş ortaklarının her biri kendi nuget.exe kopyasını kullanır ve çözümünüzde nuget.exe taşımanız gerekmez.
İlk 2.7 sürümüyle nuget.exe geri yüklemeyle ilgili bilinen iki sorun vardı, ancak bunlar 6/9/2013 tarihinde NuGet.CommandLine paketine yapılan güncelleştirmeyle düzeltildi. Bu güncelleştirme CodePlex'te [NuGet 2.7 download page](https://nuget.codeplex.com/releases/view/107605)
de kullanılabilir. Çalıştırma nuget.exe update -self
, en son sürüme güncelleştirilir.
Düzeltilenler:
[New package restore doesn't work on Mono when using SLN file](https://nuget.codeplex.com/workitem/3596)
[New package restore doesn't work with Wix projects](https://nuget.codeplex.com/workitem/3598)
Yeni paket geri yükleme iş akışında da bilinen bir sorun vardır.[Automatic Package Restore does not work for projects under a solution folder](https://nuget.codeplex.com/workitem/3625)
Bu sorun NuGet 2.7.1'de düzeltildi.
Projenizi yeniden hedefledikten veya yükselttikten sonra birçok kez bazı NuGet paketlerinin düzgün çalışmadığını fark edersiniz. Ne yazık ki, bunun hiçbir göstergesi yoktur ve ardından nasıl ele alındığını gösteren bir kılavuz yoktur. NuGet 2.7 ile artık bazı Visual Studio olaylarını kullanarak projenizi ne zaman yeniden hedeflediğiniz veya yükselttiğinizi yüklü NuGet paketlerinizi etkileyecek şekilde algılıyoruz.
Paketlerinizden herhangi birinin yeniden hedefleme veya yükseltmeden etkilendiğini algılarsak, size bildirmek için anında derleme hataları oluştururuz. Anında derleme hatasına ek olarak, yeniden hedeflemeden etkilenen tüm paketler için dosyanızda packages.config
bir requireReinstallation="true"
bayrak da kalıcı hale getirmekteyiz ve Visual Studio'daki sonraki her derleme bu paketler için derleme uyarıları oluşturacaktır.
NuGet, etkilenen paketleri yeniden yüklemek için otomatik işlem gerçekleştiremese de, bu gösterge ve uyarının paketleri ne zaman yeniden yüklemeniz gerektiğini keşfetmenize yardımcı olacağını umuyoruz. Bu hata iletilerinin sizi yönlendirdiğini paket yeniden yükleme kılavuzu belgeleri üzerinde de çalışıyoruz.
Birçok şirket NuGet'i şirket içinde kullanıyor, ancak geliştiricilerine nuget.org yerine iç paket kaynaklarını kullanmaları için yol göstermekte zorlanıyor. NuGet 2.7, aşağıdakiler için makine genelinde varsayılan değerlerin belirtilmesine olanak tanıyan bir Yapılandırma Varsayılanları özelliği sağlar:
- Etkin paket kaynakları
- Kayıtlı ama devre dışı bırakılmış paket kaynakları
- Varsayılan nuget.exe gönderme kaynağı
Bunların her biri artık konumunda %ProgramData%\NuGet\NuGetDefaults.Config
bulunan bir dosya içinde yapılandırılabilir. Bu yapılandırma dosyası paket kaynaklarını belirtiyorsa, varsayılan nuget.org paket kaynağı otomatik olarak kaydedilmez ve bunun yerine içindekiler NuGetDefaults.Config
kaydedilir.
Bu özelliği kullanmak için gerekli olmasa da, şirketlerin Grup İlkesi'ni kullanarak dosya dağıtmasını NuGetDefaults.Config
bekliyoruz.
Bu özelliğin hiçbir zaman bir paket kaynağının geliştiricinin NuGet ayarlarından kaldırılmasına neden olmadığını unutmayın. Başka bir deyişle, geliştirici NuGet'i zaten kullandıysa ve bu nedenle nuget.org paket kaynağını kaydettiyse, dosya NuGetDefaults.Config
oluşturulduktan sonra kaldırılmaz.
Bu özellik hakkında daha fazla bilgi için bkz . NuGet Yapılandırma Varsayılanları .
NuGet her zaman nuget.org işaret eden "NuGet resmi paket kaynağı" adlı varsayılan paket kaynağını kaydetmiştir. Bu ad ayrıntılıydı ve aslında nereye işaret ettiğini belirtmedi. Bu iki sorunu çözmek için bu paket kaynağını kullanıcı arabiriminde yalnızca "nuget.org" olarak yeniden adlandırdık. Paket kaynağının URL'si de "www." ön ekini içerecek şekilde değiştirildi. NuGet 2.7'yi kullandıktan sonra, mevcut "NuGet resmi paket kaynağınız" otomatik olarak adı "nuget.org" ve URL'si olarak "https://www.nuget.org/api/v2/" olarak güncelleştirilir.
2.7'de daha küçük bellek ayak izi, daha az disk kullanımı ve daha hızlı paket yüklemesi sağlayacak bazı performans iyileştirmeleri yaptık. Ayrıca OData tabanlı akışlarda genel yükü azaltacak daha akıllı sorgular da yaptık.
Önceki sürümlerde eksik işlevler boşluğunu doldurmak için genişletilebilirlik hizmetlerimize bazı yeni API'ler ekledik.
// Checks if a NuGet package with the specified Id and version is installed in the specified project.
bool IsPackageInstalledEx(Project project, string id, string versionString);
// Get the list of NuGet packages installed in the specified project.
IEnumerable<IVsPackageMetadata> GetInstalledPackages(Project project);
// Installs one or more packages that exist on disk in a folder defined in the registry.
void InstallPackagesFromRegistryRepository(string keyName, bool isPreUnzipped, bool skipAssemblyReferences, Project project, IDictionary<string, string> packageVersions);
// Installs one or more packages that are embedded in a Visual Studio Extension Package.
void InstallPackagesFromVSExtensionRepository(string extensionId, bool isPreUnzipped, bool skipAssemblyReferences, Project project, IDictionary<string, string> packageVersions);
Bu özellik Adam Ralph tarafından katkıda bulunmuştur ve paket yazarlarının yalnızca geliştirme zamanında kullanılan ve paket bağımlılıkları gerektirmeyen bağımlılıkları bildirmesine olanak tanır. içindeki packages.config
nuget.exe pack
bir developmentDependency="true"
pakete öznitelik eklendiğinde, artık bu paketi bağımlılık olarak dahil etmeyecektir.
2.7 sürümündeki yeni paket geri yükleme modeli, ana NuGet VSPackage'dan farklı olan yeni bir VSPackage tarafından uygulanır. Teknik bir sorun nedeniyle, aynı kod tabanını desteklenen diğer Visual Studio SKU'larıyla paylaştığımız için bu yeni VSPackage Windows için Visual Studio 2010 Express Telefon SKU'da düzgün çalışmıyor. Bu nedenle NuGet 2.7'den başlayarak yayımlanan uzantıdan Windows için Visual Studio 2010 Express Telefon desteğini bırakıyoruz. Web için Visual Studio 2010 Express desteği, Visual Studio Uzantı Galerisi'nde yayımlanan birincil uzantıya eklenmiştir.
Visual Studio'nun bu sürümünde/sürümünde nuGet kullanmaya devam eden geliştirici sayısından emin olmadığımız için, bu kullanıcılar için özel olarak ayrı bir Visual Studio uzantısı yayımlıyoruz ve bunu CodePlex'te (Visual Studio Uzantı Galerisi yerine) yayımlıyoruz. Bu uzantıyı sürdürmeyi planlamıyoruz, ancak bu durum sizi etkiliyorsa lütfen CodePlex'te bir sorun bildirerek bize bildirin.
NuGet Paket Yöneticisi (Windows Telefon için Visual Studio 2010 Express için) indirmek için sayfayı ziyaret edin[NuGet 2.7 Downloads](https://nuget.codeplex.com/releases/view/107605)
.
Bu özelliklere ek olarak, NuGet'in bu sürümü diğer birçok hata düzeltmesini de içerir. Sürümde ele alınan toplam 97 sorun vardı. NuGet 2.7'de sabit olan iş öğelerinin tam listesi için lütfen öğesini [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?release=NuGet%202.7&status=all)
görüntüleyin.