В моем решении C # WinForms есть два проекта. DLL, которая является основным проектом, над которым я работаю, и исполняемый файл WinForms, который я называю «песочницей», чтобы я мог легко скомпилировать / запустить / отладить DLL за один раз.
Я работаю в .Net 4.0 для обоих проектов.
Все работало нормально, пока я не добавил, казалось бы, невинный код и ссылку на System.Web в DLL. Теперь мой проект Sandbox не видит пространство имен проекта DLL. Я не менял ничего, что, по моему мнению, должно было повлиять на это.
Если я удалю ссылку проекта на DLL из ссылок на песочницу и снова добавлю ее, то все красные подчеркивания исчезнут, а цветовая кодировка вернется для всех моих классов и т. Д .; но как только я пытаюсь построить решение, все снова разваливается.
Когда я щелкаю правой кнопкой мыши проект DLL в ссылках песочницы и просматриваю в обозревателе объектов, я вижу пространство имен и все, что там есть.
У меня такое чувство, что это может быть какая-то ошибка?
Это какая-то ошибка VS2010? У меня была такая же проблема несколько месяцев назад, и я мог исправить ее, только создав совершенно новый проект и повторно импортировав свои файлы. Однако на этот раз у меня есть баджиллион файлов, и я буду делать это только в крайнем случае!
Изменить: после панического просмотра и отмены всех моих изменений, попытки найти причину проблем, кажется, это такая строка:
string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
Если я закомментирую эту строку, я не получу ошибок пространства имен и проект будет построен нормально. Однако я не вижу ничего плохого в этой строке.
источник
Убедитесь, что оба проекта используют профиль неклиента для своей целевой платформы (для этого перейдите в свойства каждого проекта).
источник
Одна из возможностей состоит в том, что целевая версия библиотеки классов .NET Framework выше, чем версия проекта. Я столкнулся с этой проблемой и решил ее, закрыв визуальную студию, повторно открыв визуальную студию, очистив и перестроив решение. Это сработало для меня. На некоторые другие сообщения я прочитал ответы, и большинство пользователей решили проблему, следуя этим путем.
источник
Попробуйте сначала самостоятельно собрать только проект с dll Sandbox.
Затем укажите в исполняемом проекте нужную dll и убедитесь, что для нее
copy local
установлено значениеtrue
. в справочных настройках.Затем соберите исполняемый проект.
источник
Изменение целевой платформы с «.NET Framweork 4 Client Profile» на «.NET Framework 4» помогло мне решить аналогичную проблему. Я согласен с тем, что профиль клиента не имеет большого преимущества в его использовании. Мне кажется, что я сталкиваюсь со странными ошибками, за которыми я охочусь, пока не вспомню, что Visual Studio по умолчанию использует профиль клиента. Я предполагаю, что мораль истории при получении ошибки такова: если «Rebuild Solution» не работает, проверьте Target framework ...
источник
Если вы уже пытались внести изменения в Framework и все еще не сработали, я надеюсь, что это сработает для вас (как и для меня): просто добавьте необходимые ссылки из своих проектов. Совершенно очевидно, но я делал это неправильно, пока не нашел, в чем проблема.
источник
У меня только что возникла эта проблема, и оказалось, что я использовал несколько пространств имен с одинаковыми именами объектов (т.е. бизнес-объекты имели те же имена, что и модели mvc);
Полное определение имен устранило проблему для меня.
источник