Подтвердить что ты не робот

Почему все мои ссылки имеют желтые восклицательные знаки на них в моей библиотеке классов .NET?

Я разрабатывал библиотеку классов довольно давно и внезапно, на прошлой неделе, я открыл свой проект, и все мои ссылки теперь имеют желтые восклицательные знаки (System.dll, System.Drawing.dll, и т.д..). Я попытался удалить ссылки и повторно добавить их, чтобы исправить любые неработающие ссылочные пути, но они продолжают показывать на них желтые восклицательные знаки.

Ничего не изменилось с момента последнего открытия проекта. Единственное, что отличалось от последнего, когда я открывал проект, было то, что на этот раз я открыл его непосредственно из .NET из другого проекта. Например, я работал над веб-проектом .NET 3.5, а затем нажал File → Open Recent Files → My Other Solution. Это закрыло мое текущее текущее веб-решение 3.5 и открыло решение библиотеки классов 2.0, и проблема появилась впервые. Я не уверен, как (или почему) это вызовет проблему, но я склоняюсь к тому, что Visual Studio запуталась или что-то еще, и теперь мои сборки недействительны в этом проекте библиотеки классов 2.0. (?)

Что могло бы случиться так, и как я могу это исправить? Я просмотрел Интернет, но вижу только, что люди предложили удалить ссылки и снова добавить их; который я сделал, безрезультатно.

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

Спасибо заранее!

4b9b3361

Ответ 1

Используя Обозреватель решений, щелкните правой кнопкой мыши и выберите "Выгрузить проект", а затем выберите "Изменить" (имя вашего файла csproj), чтобы иметь возможность редактировать файл .csproj непосредственно в VS.

В одном из узлов <ItemGroup> вы найдете подносы с тегами Reference. Убедитесь, что значение HintPath node указывает на допустимый путь. Также дважды проверьте узлы SpecificVersion и Private на допустимые значения.

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

Ответ 2

Просто добавьте к этому. У меня недавно возникла проблема, когда я добавлял ссылки, в которых TargetFramework установлен на .NET 4.0 для проекта Visual Studio 2008. Все, что вы получаете, это желтый восклицательный знак и объяснение.

Как только я понял, что выбрал неправильные бинарные файлы, это казалось очевидным!

Ответ 3

Проверить погоду проекта .NET Framework равен или больше, чем ссылка .Net framework

Ответ 4

Моя проблема заключалась в различиях в целевых версиях .NET Framework, установленных в проектах. первый был установлен в .NET 4.0, а второй был .NET 4.5 изменение его решило мою проблему

Ответ 5

У меня возникла такая же проблема с проектом, недавно открывшимся в Visual Studio 2015.

Ошибка возникла, когда я переместил несколько раз физическое местоположение репозиториев пакетов по умолчанию решений и сознательно изменил значение repositoryPath в NuGet.Config

В моем случае мне нужно было удалить элемент, путь которого указан атрибутом условия недействителен, который находится внутри раздела "Цель" файла csproj.

<Error Condition="!Exists('..\..\..\..\..\Packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" 
       Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\..\Packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />

Кроме того, эта ошибка воспроизводится, когда обычная папка Пакета удаляется или перемещается в другом месте. Затем следует обновить это значение вместе с группами элементов.

Ответ 6

Измените целевую структуру DotNet, чтобы быть одинаковой между двумя проектами, и все будет работать нормально. (Особенно, если вы "обновляете" )

Ответ 7

У меня была та же проблема с желтыми восклицательными знаками на буфере файлов исходного кода решения, которое проверено/поддерживается TFS. Не было никакой регулярности, поскольку в файлах на самом деле был желтый восклицательный знак, а какой нет. Изучив причину этой проблемы, я мог видеть, что эти файлы с желтыми восклицательными знаками фактически там, где даже не извлекаются из TFS на мой жесткий диск. Я проверил HintPath и т.д. В файлах .csproj, и там все выглядело прекрасно, и ни один другой совет из этой темы не помог мне решить проблему.

ЧТО ПОСЛЕДУЮЩАЯ ПОМОЩЬ МЕНЯЮТСЯ: В редакторе решений щелкните правой кнопкой мыши на Project → Get Specific Version... → ('Тип версии: последняя версия уже выбрана') → + включить флажок 'Перезаписать все файлы, даже если локальная версия соответствует указанной версии' → нажмите кнопку "Получить"

После того, как я сделал это, все файлы исходного кода могли быть успешно извлечены из TFS, а желтые восклицательные знаки исчезли! Надеюсь, это поможет кому-то, у кого такая же проблема!

Ответ 8

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

Весь проект ссылается на этот желтый восклицательный знак, даже ссылки на сборки фреймов.

Что в конечном итоге помогло обеспечить, что папка ".nuget" (включая Nuget.Config, NuGet.exe, NuGet.targets) была в папке с моим решением, Затем я сделал "Восстановить пакеты Nuget" в контекстном меню решения. Теперь все восклицательные знаки прошли!

Ответ 9

Если ваши файлы .dll присутствуют в исходном элементе управления, все, что вам нужно сделать, это щелкнуть правой кнопкой мыши папку Dependencies and packages из решения (которое находится в Source Control Explorer) и получить последнюю версию.

Вы найдете файлы .dll в своей системе.

Ответ 10

Я также получил эти ошибки. Я использую библиотеки Nuget в своем проекте. После обновления пакета Microsoft.Bcl все опорные ошибки были решены.

Ответ 11

В моем случае упомянутое выше решение не сработало. Я не уверен, как моя платформа была изменена на AnyCPU. Я использовал sqlite в проекте. Затем я просто изменил платформу на x86/arm для эмулятора/устройства. Он снова работал как шарм. Надеюсь, это помогает кому-то.

Ответ 12

Проблема: Это то, что произошло со мной, я сопоставлял свой репозиторий TFS с папкой в ​​папке C:\Users\myUserNameFolder \ "MyUserNameFolder" имеет специальные разрешения для того, что его системная папка, из-за которой ссылочные DLL в решении получала желтый треугольник, и всякий раз, когда я пытался повторно ссылаться на все DLL, они все еще получали одинаковый желтый треугольный знак, Решение: Я переустановил свой репозиторий TFS в обычную папку на C: \, и это сделало трюк. Надеюсь, это кому-то поможет.

P.S. Это произошло в VS 2015.

Ответ 13

В моем случае получается, что dll имел другую версию, чем пакет nuget. Несмотря на то, что версия 1.1.14 была загружена, и папка была вызвана 1.1.14, после проверки свойств dll (под вкладкой сведений) я заметил, что это была версия 1.1.13.

Следовательно, my csproj должен был ссылаться на папку 1.1.14, но с dll 1.1.13. Я изменил файл csproj, чтобы указать это.