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 83

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 по умолчанию использует профиль клиента. Я думаю, мораль истории при получении ошибки: если "перестроить решение" не работает, проверьте целевую структуру...

Если вы уже пытались сделать изменение структуры, и все еще не работал, я надеюсь, что это работает для вас (как это было для меня): просто добавьте необходимые ссылки из ваших проектов. Очень очевидно, но я делал это неправильно, пока не нашел, в чем проблема.

У меня просто была эта проблема, и оказалось, что у меня было несколько пространств имен, которые использовали одно и то же имя объекта (т. е. бизнес-объекты имели те же имена, что и модели mvc);

полностью квалифицируя имена Исправлена проблема для меня.