Mam aplikację ASP.NET MVC 4 opracowaną w programie VS 2012. Aplikacja składa się z projektu głównego (MyProject), projektu testów jednostkowych (MyProject.Tests), projektu wdrażania platformy Azure (MyProject.Azure) i kilku projekty bibliotek ogólnego przeznaczenia.
Kiedy klikam prawym przyciskiem myszy rozwiązanie lub główny projekt i wybieram Zarządzaj pakietami NuGet, widzę kilka aktualizacji firmy Microsoft, które najwyraźniej stały się dostępne w ciągu ostatniego miesiąca. Jeśli kliknę przycisk Aktualizuj wszystko, aktualizacje są najwyraźniej instalowane bez żadnych oczywistych problemów, ale kiedy buduję rozwiązanie, pojawia się ten komunikat o błędzie DWUKROTNIE:
warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build
Ok, więc mam dwa projekty, które odwołują się do MyProject: MyProject.Tests i MyProject.Azure. Mogę kliknąć prawym przyciskiem myszy MyProject.Tests, wybrać ManageNuGet Packages i dodać Microsoft.Bcl.Build. To eliminuje jedno z dwóch ostrzeżeń. Ale VS nie daje mi opcji zarządzania pakietami NuGet dla projektu MyProject.Azure .
Jak dodać pakiet Microsoft.Bcl.Build do projektu wdrażania platformy Azure?
EDYTOWAĆ:
Dzięki wzrostowi użytkowników wiem, że został tu otwarty problem z Microsoft Connect dotyczący tego problemu .
źródło
Odpowiedzi:
Dwukrotne kliknięcie ostrzeżenia zawiera instrukcje dotyczące wyłączenia ostrzeżenia.
Bezpieczne jest wyłączenie dla odwołań do projektów z projektów, które nie obsługują jeszcze Nuget.
Zobacz poniżej część pogrubioną skopiowaną z Microsoft.Bcl.Build.targets.
BclBuildValidateNugetPackageReferences
Ten cel można wyłączyć dla odwołania do projektu, ustawiając SkipValidatePackageReferences = true dla odwołania:
źródło
Odpowiedź udzielona przez TheESJ jest prawidłowa, jednak sformułowanie nie było dla mnie jasne. Ponieważ nie mogę skomentować odpowiedzi, podam tutaj więcej szczegółów. W szczególności miałem ten problem z platformą Azure projektem i konieczne było następujące obejście, aby ostrzeżenie zniknęło:
Dwukrotne kliknięcie ostrzeżenia w programie VisualStudio spowoduje przekierowanie do celu BclBuildValidateNugetPackageReferences w pliku Microsoft.BclBuild.targets. Nad rzeczywistym elementem docelowym powinieneś znaleźć duży blok komentarza, który mówi o wyłączaniu sprawdzania referencji projektu. Ponieważ projekty platformy Azure nie mogą mieć żadnych odwołań do bibliotek, nie jest możliwe, aby te projekty platformy Azure spełniały wymagania tego konkretnego celu kompilacji.
Rozwiązanie? Wyłącz sprawdzanie odwołań w projekcie platformy Azure, ponieważ nie można w rzeczywistości dodać odwołania do pakietu NuGet.
PRZYKŁAD
Załóżmy więc, że mamy dwa projekty: MyAzureProject.ccproj, który odwołuje się do MyProject.csproj . Wykonaj następujące kroki:
Znajdź odniesienie do projektu do „MyProject”. Powinien wyglądać mniej więcej tak:
Dodaj następujący element wewnątrz elementu ProjectReference:
Twój numer referencyjny projektu powinien teraz wyglądać następująco:
Kliknij prawym przyciskiem myszy „MyAzureProject” w Eksploratorze rozwiązań i wybierz „Załaduj ponownie projekt”.
Teraz powinieneś być w stanie odbudować, a błąd powinien zniknąć.
źródło
MyAzureProject.ccproj
raczej niżMyAzureProject.csproj
?Napotkałem ten sam problem i próbowałem zaktualizować Microsoft.Bcl.Build.targets; co nie pomogło.
Po pewnym dochodzeniu ustalono, że plik .csproj projektu usługi Azure musi zostać zmodyfikowany w celu uwzględnienia
<Properties>SkipValidatePackageReferences=true</Properties>
.Nie wynikało to z odpowiedzi @TheESJ, dlatego postanowiłem zamieścić osobną odpowiedź. Dzięki @TheESJ.
źródło
Napotkałem ten problem wiele razy, a metoda Właściwości rzeczywiście działa, ale podczas pracy z projektem Wix musiałem zamiast tego wykonać następujące czynności:
Kiedy użyłem węzła Properties Xml, pojawił się nowy błąd:
źródło
Po nieudanym rozwiązaniu problemów z żadną z powyższych odpowiedzi, po prostu postępowałem zgodnie z instrukcjami zawartymi w pliku Microsoft.Bcl.Build.targets (wyświetlanym po dwukrotnym kliknięciu błędu w oknie wyników kompilacji). Zwolniłem projekt (odwołując się do pakietów platformy Azure), napotykając błąd. Edytowałem plik projektu i wstawiłem następujące ...
... na górze pliku projektu przed pierwszą PropertyGroup.
źródło