У меня есть приложение ASP.NET MVC 4, разработанное в VS 2012. Приложение состоит из основного проекта (MyProject), проекта модульного тестирования (MyProject.Tests), проекта развертывания Azure (MyProject.Azure) и нескольких универсальные библиотечные проекты.
Когда я щелкаю правой кнопкой мыши решение или основной проект и выбираю «Управление пакетами NuGet», я вижу кучу обновлений Microsoft, которые, по-видимому, стали доступны в последний месяц или около того. Если я нажимаю кнопку «Обновить все», то обновления, по-видимому, устанавливаются без каких-либо очевидных проблем, но когда я создаю решение, я получаю это сообщение об ошибке ДВАЖДЫ:
warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build
Итак, у меня есть два проекта, которые ссылаются на MyProject: MyProject.Tests и MyProject.Azure. Я могу щелкнуть правой кнопкой мыши MyProject.Tests, выбрать ManageNuGet Packages и добавить Microsoft.Bcl.Build. Это избавляет от одного из двух предупреждений. Но VS не дает мне возможности управлять пакетами NuGet для проекта MyProject.Azure .
Как добавить пакет Microsoft.Bcl.Build в проект развертывания Azure?
РЕДАКТИРОВАТЬ:
Благодаря пользовательской зыби , теперь я знаю , что проблема Microsoft Connect для этой проблемы была открыта здесь .
источник
Ответы:
Если вы дважды щелкните предупреждение, вы получите инструкции по его отключению.
Можно безопасно отключить ссылки на проекты из проектов, которые еще не поддерживают Nuget.
См. Ниже выделенную жирным шрифтом часть, скопированную из Microsoft.Bcl.Build.targets.
BclBuildValidateNugetPackageReferences
Эту цель можно отключить для ссылки на проект, установив для ссылки SkipValidatePackageReferences = true :
источник
Ответ, предоставленный TheESJ, правильный, однако формулировка мне была непонятна. Поскольку я не могу комментировать ответ, я предоставлю здесь более подробную информацию. В частности, у меня возникла эта проблема с проектом Azure, и для устранения предупреждения потребовалось следующее обходное решение:
Если дважды щелкнуть предупреждение в VisualStudio, вы попадете в целевой объект BclBuildValidateNugetPackageReferences в файле Microsoft.BclBuild.targets. Над фактическим целевым элементом вы должны найти большой блок комментариев, в котором говорится об отключении проверки ссылок на проект. Поскольку проекты Azure не могут иметь ссылок на библиотеки, эти проекты Azure не могут удовлетворить требования этой конкретной цели сборки.
Решение? Отключите проверку ссылок из проекта Azure, поскольку фактически добавить ссылку на пакет nuget невозможно.
ПРИМЕР
Итак, предположим, что у нас есть два проекта: MyAzureProject.ccproj, который ссылается на MyProject.csproj. . Следуй этим шагам:
Найдите ссылку на проект «MyProject». Это должно выглядеть примерно так:
Добавьте следующий элемент внутрь элемента ProjectReference:
Ссылка на ваш проект теперь должна выглядеть так:
Щелкните правой кнопкой мыши «MyAzureProject» в обозревателе решений и выберите «Перезагрузить проект».
Теперь у вас должна быть возможность перестроить, и ошибка должна исчезнуть.
источник
MyAzureProject.ccproj
а неMyAzureProject.csproj
?Я столкнулся с той же проблемой и пытался обновить Microsoft.Bcl.Build.targets; что не помогло.
После некоторого расследования было обнаружено, что .csproj-файл проекта службы Azure необходимо изменить для включения
<Properties>SkipValidatePackageReferences=true</Properties>
.Это не было очевидно из ответа @TheESJ, поэтому было решено опубликовать отдельный ответ. Спасибо @TheESJ.
источник
Я сталкивался с этой проблемой несколько раз, и метод Properties действительно работает, но при работе с проектом Wix мне пришлось вместо этого сделать следующее:
Когда я использовал узел Properties Xml, я получил новую ошибку:
источник
Не сумев решить проблемы с помощью любого из приведенных выше ответов, я просто выполнил инструкции, содержащиеся в файле Microsoft.Bcl.Build.targets (отображается после двойного щелчка по ошибке в окне вывода сборки). Я выгрузил свой проект (ссылаясь на пакеты Azure), обнаружив ошибку. Отредактировал файл проекта и вставил следующее ...
... в верхней части файла проекта перед первой PropertyGroup.
источник