Тип или имя пространства имен не существует в пространстве имен, но пространства имен существуют

Проект, над которым я работал в течение долгого времени без каких-либо проблем, внезапно начал бросать ошибки, такие как

The type or namespace name 'xxx' does not exist in the namespace 'yyy' (are you missing an assembly reference)?

В этом случае пространства имен были всеми явными. Net-библиотеками, такими как System.Data, Linq и IO, которые я использовал без проблем.

Я рассмотрел все проблемы в этом вопросе, например, чтобы убедиться, что все проекты в рабочей области используют ту же версию .Net для Target Настройка рамок.

Я удалил все библиотеки, о которых идет речь, и повторно добавил их, но проблема осталась. Я сомневаюсь, что сами библиотеки повреждены, поскольку я ссылаюсь на них в других проектах в рамках решения.

Ответ 1

После откат моей работы с TFS мне удалось решить, что я сделал, создав эту ошибку: я добавил в проект папку "Система" и поместил в нее файл класса.

Это простая проблема для воспроизведения: создайте проект, добавьте к нему папку с именем system (он все равно будет компилироваться в данный момент), а затем создайте в нем файл .cs, который, когда будут появляться все забавные ошибки.

Проблема связана с именем папки "Система" , которая приводит к тому, что любые файлы, созданные в ней, находятся под пространством имен ".System".

Я могу понять, почему наличие папки/пространства имен под названием "Система" вызовет проблемы сейчас, но я думаю, что это помогло бы, если бы Visual Studio предупредила при создании папки/пространства имен такого имени, чтобы остановить эту проблему в первую очередь. Я зарегистрировал ошибку с MS, по крайней мере, этот журнал мог помочь другим людям, совершившим ту же ошибку, что и я!