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

Ответы

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

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

Обнаруженный конфликт между "Справка: Microsoft.Win32.Primitives, Version = 4.0.2.0, Culture = neutral, 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.

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

Ответ 4

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

Ответ 5

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

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