2013-11-21 13 views
12

Nuget kullanan ancak paket geri yüklemesini kullanmayan bir proje üzerinde çalışıyorum. (Bu, kontrolümün dışında bir karardır, bu nedenle, paketin geri yüklemesini etkinleştiren tüm cevaplar kullanabileceğim olanlar değildir.)Paket geri yükleme kullanmıyor, ancak yine de "nuget paketini kurmalısınız" Microsoft.Bcl.Build "

Çözümde bir avuç proje (4 tanesi

...packages\Microsoft.Bcl.Build.1.0.13\tools\Microsoft.Bcl.Build.targets(225,5): warning : All projects referencing Valhalla.Consumer.Core.csproj must install nuget package Microsoft.Bcl.Build. For more information, see http://go.microsoft.com/fwlink/?LinkID=317569.

Bu bağlantı Döndüm isteyeceksiniz varsayar:; 34 toplam bir WinJS app store projesi, iki sıradan .NET sınıf kütüphanesi ve benim Azure bulut projelerinden biri) bu rezil uyarıyı bildiriyorsunuz paketi geri yükleme. Öyleyse bu konuda şimdiye kadar bulabildiğim her türlü tavsiyem var.

Ben Paketi Seçenekleri Restore devre dışı bırakılması çalıştı -> Paket Yöneticisi -> Genel ayarlar, bu arada. Bu işe yaramaz (ve olsa bile, istenmeyen olurdu - üzerinde çalıştığım her şeyde paket geri yükleme kullanıyorum).

Gerçekten paket geri kullanmayan bir çözümde bu alıyorum neden anlamıyorum. Anladığım kadarıyla, istediği paketin tamamı, paketin geri yüklenmesini desteklemektir. Bu nedenle, paket geri yüklemesinin kullanılmadığı bir çözümde, bu paketin mevcut olması garip görünüyor. Bununla birlikte, diğer bazı nuget paketlerinin buna bağlı olmanıza neden olduğu anlaşılmaktadır. Herhangi bir nedenle, Microsoft.Bcl.Build bağımlılığı olan bir nuget paketini kullanan Microsoft.Bcl kullanan bir Windows Runtime Bileşen projem var. (Visual Studio, projeyi oluşturduğumda benim için Microsoft.Bcl paketini ekledi. Muhtemelen gerekli.) Diğer projeler, HTTP istemci kitaplıkları aracılığıyla Microsoft.Bcl.Build'a bağımlılık kazanıyor gibi görünüyor.

Yani görünüşe göre, bazı ortak Nuget paketleri paket geri kullandığınız olsun ya da olmasın Microsoft.Bcl.Build bir bağımlılık zorlamak için görünür. Bu uyarıyı almak tüm projeler için ilgili paket ekleyerek basitçe uyarısını ortadan eğer iyi olurdu

. Ancak, çığır açan şey, tüketen bileşenlere Microsoft.Bcl.Build paketini eklesem bile (ör. WinJS Pencere Mağazası uygulaması) hala bu uyarıyı almamdır! (Yani ben bunu kurduktan sonra bile Nuget paketini yüklemeniz gerekir şikayetçi devam ediyor.)

kimse bu durumda bu uyarıyı ortadan kaldırmak için nasıl biliyor mu? Yapmamı istediğimi yapmak yeterli görünmüyor. Ne kayıp?

+1

projede SkipValidatePackageReferences özelliğini kullanarak denedin mi:

kaldır, aşağıdaki satırları eklenmiştir proje B'nin csproj belirgin bir fark bulunmuştur ekleyin Microsoft.Bcl.Build.targets dosya? –

+0

Bundan kurtulmakla birlikte, meşru uyarıları da önlemez mi? Eğer proje U proje P'yi kullanıyorsa, o zaman U aynı nuget paketini de P olarak olmalıdır. Normalde, nuget bir şey eksik olup olmadığını kontrol edecek ve size söyleyecektir, ancak bu ayar bu kontrolü devre dışı bırakır. Ben gerçekten bir paket eksik, ancak aslında Microsoft.Bcl.Build' hakkında uyarıları almak için uyarıları almak istiyorum. –

+0

Eğer Paket Geri Yükleme etkinleştirilmiş ise OOTB, v2.7 + 'da NuGet'in herhangi bir kullanımıdır (Microsoft.Bcl.Build' in bilinmesi gerekir) –

cevap

7

Aynı sorunu yaşadım. Microsoft.Bcl.Build paketini 1.0.13'den 1.0.14'e güncellemek, sorunumu çözdü.

+0

VS sürümlerini güncellemek zorunda kaldım –

+0

Ben şimdiden 1.0.14 üzerinde vs 2013 topluluk güncelleme 4 ile yaşıyorum ve uyarı var. Ne yapmalıyım ? – Julian50

+0

@FrankSposaro hangi sürümü kurdu? – Julian50

4

Yakın zamanda aynı sorunu yaşadık. Nuget 2.8, BCL build 1.0.14, BCL 1.1.9 kullanarak, BCL build kullanarak bir proje A, başka bir proje B tarafından başvurulan bir proje vardı.

Kısa öyküsü: Paketlenmiş olan her ne kadar proje B derleme belirtilen hata verdi ona eklendi. Çözüm, paketleri kaldırmak ve yeniden eklemek oldu. Biz inanıyorum hem proje A ve B

sorunun nedeni sürümlerinde bir uyumsuzluk olduğunu yapmak sona erdi. Özgün proje BCL 1.1.8'i (oluşturulduğu en son sürüm) referans alırken, proje B otomatik olarak daha yeni BCL 1.1.9'u kullanıyordu.

İlgili olup olmadığından emin değilim, ancak ilk kez proje-> NuGet paket yöneticisini kullanarak paket ekledik ve 2. kez de NuGet Konsolunu (Tools-> Nuget-> konsolu) kullandık. önerildiği üzere

<Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.14\tools\Microsoft.Bcl.Build.targets')" /> 

İlgili konular