it-roy-ru.com

VS 2017 15.3 Желтые треугольники на ссылках

Этим утром я обновился до VS 2017 15.3 и теперь получаю желтые треугольники для большинства моих ссылок. Проект работает нормально (сборка хороша в CLI и VS, и восстановление выполнялось несколько раз), что я могу сказать (и даже лучше на dotnetcore 2.0 на самом деле), но они остаются. Кто-нибудь еще имел это случиться или есть предложение? Благодарю.

Ссылка на файл project.assets.json -> https://www.dropbox.com/s/c85yuyjiu4pnget/project.assets?dl=0

 Yellow triangles in Solution Explorer

Также проблема серого использования и красных ссылок, хотя все работает и работает нормально. 

 enter image description here

 Warnings Window

21
dodegaard

Обновление: учетная запись Twitter VisualStudio ответила мне, чтобы отметить, что это ошибка, и они работают над исправлением этого будущего ....

У меня есть два ответа на мой пост:

1) Проблема использования, отмеченная серыми, была проблемой ReSharper. Если вы обновляетесь до VS 2017 15.3 и используете R #, убедитесь, что вы также обновили его до 2017.2.

2) Проблема желтых треугольников рассматривается командой Visual Studio, но, честно говоря, я считаю, что она связана с предупреждениями в сборке о том, что эти ссылки приводятся либо к более низким зависимостям (например, Newtonsoft на разных уровнях), либо к предварительным просмотрам. Быстро развивающийся мир .NET 2.0, возможно, усугубил эту проблему. Желтые треугольники традиционно означают отсутствие, но проверьте свои предупреждения, чтобы увидеть, связано ли это, а затем просмотрите цепочку зависимостей. Я обновлю этот ответ, как только получу ответ от команды VS (кричите им и Дамиану Эдвардсу + Скотту Хансельману за помощь в этом в Твиттере).

7
dodegaard

Я столкнулся с желтым треугольником в вопросе ссылок после обновления проектов в моем решении (.NET 4.6.1) до нового формата .NET Standard .csproj, который поставляется с VS2017. Ссылки, для которых я получал предупреждения, были типа ProjectReference (хотя, похоже, они распространялись на PackageReference для общих пакетов в рассматриваемых проектах).

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

Я мог бы проследить все предупреждения до одного проекта в моем решении. Я смог решить эту проблему, удалив этот проект из моего решения, а затем снова добавив его и добавив только необходимые ссылки на проекты.

Кажется, проблема была связана с ненужными ссылками на проект (или, возможно, циклически), вызванными новой поддержкой переходных зависимостей. После удаления проекта и добавления его обратно только с минимальными значениями ProjectReference и использования поддержки транзитивных зависимостей для распространения зависимости все предупреждения исчезли.

Это также решило проблему, из-за которой в рассматриваемом проекте не удалось выполнить компиляцию во время запуска msbuild командной строки на моем CI-сервере, на котором установлены только инструменты сборки VS2017 (не полная IDE).

4
Simon Fox

У меня была такая же проблема, некоторые ссылки были помечены желтым треугольником. Однако я смог собрать и запустить свой проект . Мне удалось удалить эти предупреждения, выполнив следующие шаги из этого ответа: .Net 2015 Ссылки с желтым треугольником для пакетов Nuget в переносимых библиотеках

Я включил трассировку для Visual Studio, у меня были следующие предупреждения в файлах журнала для всех неправильно загруженных ссылок:

Обнаружен конфликт между 'Ссылка: Microsoft.Win32.Primitives, Версия = 4.0.2.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL' и 'Ссылка: C:\Program Files (x86)\Visual Studio\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\исх\Microsoft.Win32.Primitives.dll. Выберите «Справочник: C:\Program Files (x86)\Visual Studio\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\Microsoft.Win32.Primitives.dll», поскольку AssemblyVersion «4.0.3.0» больше, чем '4.0.2.0'.

Чтобы быть точным, я сделал следующие шаги:

  1. Удалено условие ошибки из моего файла .csproj
  2. Удален параметр <Private>true</Private> для не загруженных ссылок в файле .csproj
  3. Удалены незагруженные пакеты из папок \ lib и \ ref в соответствующей папке MSBuild.
  4. Удаленные пакеты из папки \ packages в решении.
  5. Восстановленные пакеты nuget.

Я не уверен, что все эти шаги необходимы, но это сработало для меня.

0
Lickut

Несоответствующая версия Windows SDK между ссылочным проектом и ссылками приведет к этому. В файле vcxproj это «<WindowsTargetPlatformVersion> Версия SDK </ WindowsTargetPlatformVersion>»

Я обновлялся с VS2012 до VS2017. Все было хорошо, затем я обновился до новой версии libtomcrypt и libtommath. Вместо того, чтобы настраивать мои существующие проекты, я преобразовал проекты из дистрибутивов VS2008 -> VS2012 -> VS2017. В процессе я взял Windows SDK Version 10.0.17763.0 в обоих новых проектах. Тем не менее, все проекты, которые ссылались на те, были 8.1, и, следовательно, предупреждение.

0
GTAE86

У меня была похожая проблема с Visual Studio 2017. И я обнаружил, что, если при изменении настроек зависимостей пакета я хотел установить (от самой низкой зависимости до самой высокой), все работало нормально.

0
Jean Claude