Типа не существует в ошибке пространства имен
Появилась еще одна проблема. Я почти закончил свой проект, но почувствовал, что мне пришлось изменить пространство имен проекта.
Но вместо использования refactor → rename я выбрал свое пространство имен, изменил → нашел и заменил и заменил все мое решение на другое пространство имен (так что везде в решении, где, например, существует пространство имен или текст "name1", теперь изменено на "name2" ).
Но теперь я получаю около 16 ошибок, говорящих одно и то же: "Типы или пространства имен" ресурсы "не существуют в namespace name1".
this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest;
Итак, например, в этой строке кода (главным образом в конструкторе .cs) ресурсы окрашены в красный цвет?
Любые подсказки о том, как это исправить?
Ответы
Ответ 1
Вам нужно запустить генерацию кода в файле ресурсов, чтобы получить там правильное пространство имен.
Выполните следующие действия:
- Откройте свойства проекта (щелкните правой кнопкой мыши > свойства)
- щелкните раздел "Приложение"
- Введите предпочтительное пространство имен по умолчанию
- Закрыть и сохранить ваши свойства.
- перейдите в проводник решения в файл Resouces.resx(в разделе "Свойства" )
- Щелкните файл Resources.resx правой кнопкой мыши
- Выберите "Запустить пользовательский инструмент" (или alt + L)
Это снова запускает генерацию кода для файлов ресурсов. Сгенерированный код позволяет строго указать доступ к значениям в ваших строках ресурсов.
Ответ 2
Запустить пользовательский инструмент не помог мне.
Но я обнаружил, что если я добавил ресурс, проблема исправлена.
Выполните следующие действия:
- Откройте свойства проекта (щелкните правой кнопкой мыши > свойства)
- Выберите раздел Ресурсы
- В раскрывающемся списке Добавить ресурс выберите Добавить существующий файл
- Выберите любой файл ресурсов. (Я выбрал существующий файл изображения)
- В этот момент мои ошибки исчезли.
- Выберите ресурс, который вы только что добавили.
- Нажмите Удалить ресурс (для очистки)
- Закрыть и сохранить ваши свойства.
Поздний (очень) ответ, который я знаю, но там вы идете.
Ответ 3
Поскольку ни один из ответов не работал в моем случае, я решил опубликовать собственный ответ.
Вот что я сделал:
- Создайте класс с тем же именем (X) в одном и том же пространстве имен (Y).
- "В пространстве имен" Y "уже содержится определение для" X ". появляется ошибка.
- Удалить класс X.
После удаления класса мой ресурс с именем X остался видимым в пространстве имен.
Ответ 4
Вы, скорее всего, попытались добавить еще один файл ресурсов с тем же именем, что и уже существующий ресурс.
Чтобы исправить это, просто удалите соответствующую строку в файле Resource.resx, например, вы увидите две строки, которые имеют одно и то же "Имя данных":
<data name="button" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\button.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>