Типа не существует в ошибке пространства имен

Появилась еще одна проблема. Я почти закончил свой проект, но почувствовал, что мне пришлось изменить пространство имен проекта. Но вместо использования 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>