Не используя восстановление пакета ,но все же получая " необходимо установить пакет NuGet Microsoft.Bcl.Строить"

Я работаю над проектом, который использует nuget, но не использует восстановление пакета. (Кстати, это решение вне моего контроля, поэтому любые ответы, связанные с включением восстановления пакета, я не смогу использовать.)

несколько проектов в решении (4 из 34; проект WinJS app store, две обычные библиотеки классов .NET и один из моих облачных проектов Azure) сообщают об этом печально известном предупреждении:

...packagesMicrosoft.Bcl.Build.1.0.13toolsMicrosoft.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.

эту ссылку предполагается, что я захочу включить восстановление пакета. Как и все остальные советы, которые мне удалось найти по этому вопросу.

Я попытался отключить восстановление пакета в Options - > Package Manager - > Общие настройки, кстати. Это не помогает (и даже если бы это было так, это было бы нежелательно - я использую package restore во всем остальном, над чем я работаю).

Я действительно не понимаю, почему я получаю это в решении, которое не использует восстановление пакета. Насколько я понимаю, весь смысл пакета он просит поддержать пакет восстановления. Поэтому в решении, в котором восстановление пакета не используется, кажется странным, что этот пакет присутствует.

однако, похоже, что некоторые другие пакеты nuget заставляют вас зависеть от этого. У меня есть проект компонента среды выполнения Windows, который использует Microsoft.Bcl, пакет nuget, который по какой-то причине зависит от Microsoft.Bcl.Build. (Visual Studio, казалось, добавила Microsoft.Bcl пакет для меня, когда я создал проект. По-видимому, это необходимо.) Другие проекты, похоже, приобретают зависимость от Microsoft.Bcl.Build через клиентские библиотеки HTTP.

таким образом, по-видимому, некоторые общие пакеты nuget, по-видимому, заставляют зависимость от Microsoft.Bcl.Build используете ли вы восстановление пакета.

это было бы хорошо, если бы вы могли устранить предупреждение, просто добавив соответствующий пакет ко всем проектам, которые получают это предупреждение. Но досадно то, что даже если я добавлю Microsoft.Bcl.Build пакет к уничтожать компоненты (например, мое приложение WinJS Window Store) я все еще получаю это предупреждение! (Поэтому он продолжает жаловаться, что мне нужно установить пакет nuget даже после его установки.)

кто-нибудь знает как устранить это предупреждение в такой ситуации? Делать то, что он просит меня сделать, кажется, недостаточно. Чего не хватает?

2 ответов


У меня была та же проблема. Обновление Microsoft.Bcl.Пакет сборки от 1.0.13 до 1.0.14 решил мою проблему.


недавно у нас была такая же проблема. Используя Nuget 2.8, BCL build 1.0.14, BCL 1.1.9, у нас был проект A с использованием BCL build, на который ссылался другой проект B.

короткая история: компиляция проекта B дала указанную ошибку, хотя к ней были добавлены упакованные. Решение состояло в том, чтобы удалить пакеты и повторно добавить их. Мы закончили тем, что сделали это для проекта A и B.

Я считаю, что причиной проблемы является несоответствие версий. Оригинальный проект ссылка на BCL 1.1.8 (последняя версия, когда она была создана) была в то время как проект B автоматически использовал более поздний BCL 1.1.9.

Я не уверен, что это актуально, но в первый раз мы добавили пакеты с помощью project->NuGet package manager, а во второй раз мы использовали консоль NuGet (Tools->Nuget->console).

удаление, добавление вызвало различную разницу в csproj проекта B. были добавлены следующие строки:

<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')" />