Visual Studio 2010 внезапно не может видеть пространство имен?
мое решение c# WinForms имеет два проекта. DLL, которая является основным проектом, над которым я работаю, и исполняемые WinForms, которые я называю "песочницей", чтобы я мог легко компилировать/запускать/отлаживать DLL за один раз.
Я работаю в .Net 4.0 для обоих проектов.
все работало нормально, пока я не добавил какой-то, казалось бы, невинный код и ссылку на систему.Веб в библиотеке DLL. Теперь мой проект песочницы не может видеть пространство имен проекта DLL. Я не изменил ничего, что я полагаю, это должно было сказаться.
если я удалю ссылку проекта на DLL из ссылок песочницы и повторно добавлю ее, то красные подчеркивания все исчезнут, а цветовое кодирование вернется для всех моих классов и т. д.; Но как только я попытаюсь построить решение, все это снова развалится.
когда я щелкаю Правой Кнопкой Мыши проект DLL в ссылках песочницы и просмотре в обозревателе объектов, я вижу пространство имен и все, что там есть.
I есть ощущение, что это может быть какая-нибудь ошибка?
Это какая-то ошибка VS2010? У меня была такая же проблема несколько месяцев назад, и я мог только исправить ее в то время, сделав совершенно новый проект и повторно импортировав мои файлы. На этот раз, однако, у меня есть куча файлов и делать это только в крайнем случае!
изменить: После панического прохождения и отмены всех моих изменений, пытаясь найти то, что вызвало проблемы, кажется, эта строка:
string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
Если Я закомментируйте эту строку, тогда я не получаю ошибок пространства имен, и проект строится нормально. Я не вижу ничего плохого в этой линии, хотя.
7 ответов:
Я готов объявить это ошибкой в VS2010, это уже укусило слишком много программистов. Исправить это легко: Project + Properties, вкладка Application, изменить целевую платформу на ".NET Framework 4" вместо профиля клиента, выбранного по умолчанию.
убедитесь, что оба проекта используют неклиентский профиль для своей целевой платформы (для этого перейдите к свойствам каждого проекта).
одна из возможностей заключается в том, что целевая версия .NET Framework библиотеки классов выше, чем у проекта. Я столкнулся с этой проблемой и решил ее, закрыв visual studio, снова открыв visual studio, очистив и восстановив решение. Это сработало для меня. На некоторых других сообщениях я прочитал ответы, и большинство пользователей решили проблему, следуя этому пути.
сначала попробуйте создать только проект с изолированной библиотекой dll самостоятельно.
затем наведите исполняемый проект на нужную dll и убедитесь
copy local
установлено значениеtrue
. в справочных настройках.затем построить исполняемый проект.
изменение целевой платформы с ".NET Framweork 4 Client Profile" на ".NET Framework 4" работало для меня с аналогичной проблемой. Я согласен, что профиль клиента, похоже, не имеет большого преимущества для его использования. Я, кажется, прибит странными ошибками, которые я ищу, пока не вспомню, что Visual Studio по умолчанию использует профиль клиента. Я думаю, мораль истории при получении ошибки: если "перестроить решение" не работает, проверьте целевую структуру...