У меня есть решение, которое содержит веб-сайт и библиотеку классов в Visual Studio 2008.
Затем у меня есть еще один проект веб-сайта вне решения, который должен ссылаться на библиотеку классов. Я щелкаю правой кнопкой мыши папку Bin или Project и выбираю Add Reference, затем выбираю свой проект библиотеки классов, он добавляет около 15 DLL, необходимых библиотеке классов, в папку bin веб-сайтов, но ни один из файлов .cs не распознает операторы using.
using MyLibrary.MyFolder;
Он говорит, что не может решить эту проблему, а ReSharper просто говорит, что его можно безопасно удалить, поскольку он не используется.
ReSharper может распознать, что ему нужна ссылка, и предлагает «сослаться на MyLibrary и использовать MyFolder». Я не уверен, почему он предлагает добавить ссылку, которая у меня уже есть. Когда я предлагаю предложение, я получаю сообщение об ошибке
«Не удалось ссылаться на модуль. Вероятно, ссылка приведет к циклическим зависимостям между проектами».
Я попытался перейти на страницы свойств веб-сайтов, удалить все ссылки и повторно добавить их, но это дает те же ошибки. Есть идеи, почему это не работает?
источник
Ответы:
Также убедитесь, что проекты нового решения работают в соответствии с фреймворком, совместимым с проектом, который вы пытаетесь включить. Я пытался включить ссылку на проект 4.0 в проект 3.5.
источник
Я нашел, как решить эту проблему (по крайней мере, для меня). Почему это сработало, я не уверен, но сработало. (Я просто пробовал использовать второй веб-сайт, у которого была такая же проблема, и следующее решение тоже сработало).
Я попробовал выполнить обычную очистку проектов и повторную сборку, выключил все экземпляры Visual Studio и перезапустил их, даже попытался перезагрузить компьютер.
На самом деле сработало открытие проекта в Visual Studio, закрытие всех открытых вкладок, а затем его закрытие.
Раньше я оставлял вкладки открытыми, потому что не думал, что это имеет значение (и я почти никогда не закрываю вкладки, которые использую).
источник
Одна из возможностей заключается в том, что целевая версия библиотеки классов .NET Framework выше, чем версия проекта.
источник
У меня была аналогичная проблема, будут ли все мои ссылки ошибаться Resharper - Решение, которое сработало для меня, - очистить кеш Resharper, а затем перезапустить VS
tools-> options-> resharper-> options-> general-> нажмите кнопку очистки кешей и перезапустите VS
источник
У меня были похожие проблемы, когда VS иногда строил, а иногда нет. После некоторых поисков и попыток я обнаружил, что у меня есть неоднозначная ссылка на класс с тем же именем в разных библиотеках (FileManager). Проект, который не удалось собрать, - это мои модульные тесты, которые ссылаются на все модули в моем решении. Применение ссылки на конкретный модуль помогло мне разобраться.
Моя точка зрения: вместо того, чтобы обвинять ReSharper или VS, может быть хорошей идеей дважды проверить, действительно ли каким-то образом нет какой-то круговой ссылки. Чаще всего классы с одинаковыми именами в разных модулях могут вызывать путаницу и часто являются признаком плохого дизайна (как в моем случае).
источник
The type or namespace name 'A' does not exist in the namespace 'B'
. Обратите внимание, что никаких предупреждений по этомуЭто похоже на аналогичную проблему с ReSharper:
http://www.jetbrains.net/devnet/thread/275827
По словам одного пользователя в потоке, принудительная сборка устраняет проблему (CTRL + Shift + B) после первой сборки.
Похоже, проблема с ReSharper конкретно в их случае. Вы пробовали строить, несмотря на предупреждения и возможные ложные ошибки?
источник
Поскольку они оба находятся в одном решении, вместо добавления ссылки на DLL добавьте ссылку на сам проект библиотеки классов (в диалоговом окне «Добавить ссылку» будет вкладка для этого).Ах, это другое решение. Пропустил. Как насчет того, чтобы вместо добавления ссылки на проект добавить ссылку на скомпилированную DLL вашей библиотеки классов. В диалоговом окне «Добавить ссылку» есть вкладка «Обзор», которая делает это.
источник
После подтверждения использовалась та же версия asp.net. Я удалил проект. очистил решение и повторно добавил проект. это то, что сработало для меня.
источник
Если вы ссылаетесь на сборки для проектов, которые находятся в одном решении, добавьте ссылку на проект (с помощью вкладки «Проекты»), а не просматривайте dll в папке \ bin \ Debug (или \ bin \ Release) (используя Вкладка «Обзор»). См. Снимок экрана ниже. Просматривайте файл сборки / dll, только если он считается внешней сборкой.
источник
Я удалил * .csproj.user (файл resharper) своего проекта, затем закрыл все вкладки и снова открыл его. После этого я смог скомпилировать свой проект, и предупреждений resharper не было.
источник
У меня была такая проблема. Мне потребовалось время, чтобы понять. У меня были люди, готовые помочь. Мы перестроили, почистили и перезапустили Visual Studio, но это не помогло. Мы удалили и снова добавили ссылки ...
Все без толку .... Пока!
Решение моей проблемы заключалось в том, что объявление моего класса было написано неправильно.
Прежде чем вы начнете судить меня резко, позвольте мне объяснить, почему это было не глупо, а также почему эту ошибку могли совершить даже самые умные программисты.
Поскольку ошибка была в самом начале имени, она не отображалась в списке классов intellisense, когда я начал печатать.
например
Название класса:
Message.cs
Декларация:
public class Massage { //code here }
На первый взгляд и мелким шрифтом Massage выглядит идентично Message.
При вводе M перечислялось слишком много классов, поэтому я набрал e, которого не было в версии с ошибками, что создавало впечатление, что класс не был выбран компилятором.
источник
У меня была аналогичная проблема в VS 2010 при создании тестового проекта для приложения MVC 2. Симптомы были идентичны.
Сообщение от ReSharper несколько вводило в заблуждение. На мгновение я полностью проигнорировал ReSharper и сделал это «ручным способом VS»:
На этом этапе я получил ошибку компиляции: я должен был сослаться на
System.Web.Mvc
сборку в моем тестовом проекте (вздох). Добавление этой ссылки вызывает компиляцию проекта. Проблемы с ReSharper остаются, но средство запуска тестов ReSharper работает.Когда я перезапускаю VS, ошибки ReSharper тоже исчезли. Я не уверен, требуется ли перезагрузка - может быть достаточно просто закрыть файл .cs.
С этого момента, когда я вижу сообщение ReSharper
Я буду читать
источник
Еще одно возможное исправление, которое сработало для меня:
Если у вас есть сборка A, которая ссылается на сборку B, обе из которых ссылаются на непроектную (внешнюю) сборку X, и код сборки B не распознает, что вы ссылались на X, попробуйте выполнить следующие шаги по порядку:
Очевидно, VS не распознает ссылку на внешнюю сборку в проекте, которая является зависимостью другого проекта, который уже ссылается на внешний. Снова настраивая ссылки с нуля, вы преодолеете это. Это просто очень странно.
источник
Я столкнулся с этой проблемой и решил ее, закрыв визуальную студию, повторно открыв визуальную студию, очистив и перестроив решение. Это сработало для меня.
источник
При использовании TFS выполнение Get latest (рекурсивно) не всегда работает. Вместо этого я принудительно загружаю последнюю версию, щелкнув Source control => Get specific version, а затем щелкнув оба поля. Это работает.
Если он по-прежнему не работает, то удаление файла suo (обычно находящегося в том же месте, что и решение) заставляет Visual Studio получить все файлы из источника (и впоследствии перестроить файл suo).
Если это не сработает, попробуйте закрыть все открытые файлы и закрыть Visual Studio. Когда вы в следующий раз откроете Visual Studio, это должно быть исправлено. Таким образом устраняется ошибка resharper.
источник
Недавно я столкнулся с подобной проблемой. Я работаю в Visual Studio 2015 с Resharper Ultimate 2016.1.2. Я пытался добавить новый класс в свою базу кода, пытаясь сослаться на класс из другой сборки, но Resharper выдает ошибку для этого пакета.
С некоторой помощью коллеги я выяснил, что указанный класс существует в глобальном пространстве имен и недоступен из нового класса, поскольку он был скрыт другой сущностью с тем же именем, которая существовала в текущем пространстве имен.
Добавление ключевого слова global :: перед требуемым пространством имен помогло мне сослаться на класс, который я действительно искал. Более подробную информацию об этом можно найти на странице, указанной ниже:
https://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx
источник
Если оба проекта содержатся в одном решении, будет более целесообразным, если вы добавите ссылку на нужный проект, а не его скомпилированную dll.
источник
К сожалению, единственное, что сработало для меня, - это полное удаление и воссоздание проекта библиотеки классов после временного копирования файлов классов в другое место. Только тогда веб-проект ASP.Net распознает
using
утверждения, относящиеся к проекту библиотеки классов. Это было с Visual Studio 2010, без использования ReSharper.источник
У меня была аналогичная проблема. Что сработало для меня, так это то, что я добавил неправильную библиотеку классов из визуальной студии . Я добавил с помощью функции поиска Visual Studio.
Что мне нужно было сделать, так это Добавить новый проект> Visual C #> Библиотека классов . И эта недавно добавленная библиотека классов является правильной и теперь может быть добавлена в качестве ссылки в любой проект.
источник
Вы можете забыть добавить ссылку на библиотеку классов, которую нужно импортировать.
Щелкните правой кнопкой мыши библиотеку классов, которую вы хотите импортировать (которая содержит несколько импортированных библиотек классов), -> Добавить-> Ссылка (выберите проекты-> Решение-> выберите библиотеку классов, из которой вы хотите импортировать-> ОК)
источник