Почему все мои ссылки имеют желтые восклицательные знаки на них в моей библиотеке классов .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. (?)
Что могло бы случиться так, и как я могу это исправить? Я просмотрел Интернет, но вижу только, что люди предложили удалить ссылки и снова добавить их; который я сделал, безрезультатно.
Я рассматриваю возможность начать новый проект и копировать все мои исходные файлы один за другим, но действительно хотел бы избежать всего этого, если это возможно.
Спасибо заранее!
Ответы
Ответ 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
, чтобы указать это.