Подтвердить что ты не робот

Как исправить "пространство имен x уже содержит определение для x" ошибки? Произошло после преобразования в VS2010

В частности, ошибка возникает в Resources.Designer.cs:

Ошибка 2 В пространстве имен "ModulusFE" уже содержится определение для "StockChartX" Resources.Designer.cs 11 21 ModulusFE.StockChartX

Я искал это и все еще довольно смущен. Кто-нибудь знает что-нибудь, что я могу попробовать?

Я попытался восстановить и очистить, а также переименовать файл Resources.Designer.cs в надежде, что он перестроит, но не повезет.

В верхней части кода сказано следующее:

// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.225
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>

Любые идеи будут оценены.

4b9b3361

Ответ 1

У меня это случилось со мной примерно год назад, и я не помню, в чем была главная причина, но есть две вещи, которые вы можете попробовать:

  • Если это автоматически сгенерированный файл (как правило, Resource.Designer.cs), попробуйте удалить его и позволить VS повторно сгенерировать его.
  • Как отдельно, так и в сочетании С# 1 выберите Show All Files в обозревателе решений или откройте папку решений в проводнике Windows - возможно, версия файла каким-то образом исключена из проекта и поэтому является "невидимой", к VS, но все еще сердит...

Ответ 2

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

Ответ 3

Это старый вопрос, но я не нашел исправления, которые я использовал, поэтому я добавил его здесь.

В моем случае это пространство имен с тем же именем, что и класс в родительском пространстве имен.

Чтобы найти это, я использовал браузер объектов и искал имя элемента, который уже был определен.

Если это не позволит вам сделать это, пока у вас все еще есть ошибка, затем временно измените имя объекта, на который он жалуется, а затем найдите оскорбительный элемент.

Ответ 4

Похоже, ошибка в коде VS OmniSharp.

Решением для меня было выполнить команду "Перезапустить OmniSharp".

Просто сделать: - ctr shift P - введите "Перезапустить OmniSharp".. нажмите Enter

Это исправило это для меня.

Ответ 5

К сожалению, ни один из других ответов не помог. Моя проблема конкретно возникла в проекте WPF.

Проблема возникла, когда я создал папку в папке MainWindow, которая фактически создала пространство имен, похожее на ProjectName.MainWindow.Folder. Теперь, я полагаю, из-за некоторого статического конструкторского кода Visual studio запутывается между классом MainWindow и пространством имен Project.MainWindow.Folder. В качестве решения я переместил Folder из MainWindow. Взгляд на представление классов или решение/проект помогает определить, какие пространства имен и классы в них существуют.

Ответ 6

Это случилось со мной. Случилось так, что я дублировал проект, который первоначально находился под контролем источника. Хотя я правильно переименовал все, разрешения на файлы для всех файлов по-прежнему были установлены только для чтения. Когда я начал изменять элементы управления формой, Visual Studio автоматически создала файл Resource1, потому что исходный файл ресурсов был доступен только для чтения.

Что я сделал, чтобы исправить это, было следующее:

  • разрешить права на запись в файлах проекта.
  • удаленный исходный файл ресурсов
  • Ctrl-A для всех элементов формы, затем Ctrl-X, чтобы вырезать их.
  • Сохраните форму.
  • Ctrl-V, чтобы вставить их обратно.
  • Сохраните форму.

Мне пришлось это делать, потому что автоматически сгенерированный код не обновлялся на нем, поэтому я "принудительно" его обновил, внеся изменения в форму. Не делая этого оставил кучу кода из элементов формы, которые больше не существовали до изменения прав доступа к файлам.

Ответ 7

У меня был xaml файл со следующим определением

<Window x:Class="mm2.Views"
   .etc..
/>

mm2.Views было именем пространства имен в моем приложении.

Чтобы исправить это, я правильно переименовал объект xaml:

<Window x:Class="mm2.Views.RecordedTracks"
   .etc..
/>

Ответ 8

У меня была аналогичная проблема и разрешил ее, удалив любые копии/резервные копии файла .cs из каталога.

Ответ 9

У меня была такая же проблема, и это было связано с тем, что я назвал функцию в коде, которая похожа на мой инструмент. Простая ошибка, но что-то иметь в виду.

Ответ 10

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

Моя проблема возникла, когда я неправильно назвал файл ресурсов для японского языка. Короче говоря, я пытался создать ресурс для японцев, но я случайно назвал его localized.jp.resx. Затем я понял, что код языка iso является ja not jp для японского. Как только я изменил имя файла на localized.ja.resx и удалил все, что было в файле конструктора, он исправил мою проблему.

Это то, что исправила мою проблему, надеюсь, это помогает кому-то другому.

Ответ 11

Я столкнулся с подобной проблемой. После создания моей базы данных из файла edmx я нажал "сохранить все" и "построить", и все классы типов/моделей, которые я создал, появились в окне ошибки. Я исследовал, почему это произошло, и, как и ваши ответы, я подумал, что это было что-то, что было сгенерировано автоматически.

Однако решения, такие как удаление автоматически сгенерированных классов и их повторное создание, не помогли мне.

В конце концов у меня закончилось терпение, и я решил исправить это по-другому. Поскольку мой script был сохранен, я просто удалил файл edmx (и его ссылку в файле web.config) и вернулся и создал другой, используя "модель из базы данных" и не трогал его после этого.

Излишне говорить, что я был совершенно с ума, что так получилось.

Ответ 12

У меня тоже была эта ошибка, Когда я изменяю проект проекта WPF Target Framework для Framework Version 4.0 Client Profile → Framework 4.0. Он решил сам по себе.

Ответ 13

То, как я решил, это удалить все перечисления из браузера модели, а затем снова добавить их снова. Как-то чудесным образом инструмент полностью восстановил и сообщение об ошибке исчезло (я использую VS2012, FYI).

Ответ 14

Это может быть немного крайний случай, но время от времени мы сталкиваемся с этим в нашей среде разработки. Мы должны были настроить пользовательскую культуру в Windows для поддержки en-HK. Windows 8.1 теперь поддерживает эту культуру, как и Windows 2012 R2, но более старые машины должны создавать культуру. Любая машина, у которой нет этой настройки культуры, получит эту ошибку. Решение состоит в создании культуры на машине (у нас есть консольное приложение, созданное для этой цели), и все снова начинает работать.

Ответ 15

У меня было что-то подобное в моем приложении WPF. Это возникло, когда я пытался провести некоторую очистку, объявив пространство имен более описательным. Проблема возникла потому, что я назвал пространство имен в коде (или cs) так же, как класс Window. Пространство имен в выделенном фрагменте кода должно иметь последний раздел (после крайней правой точки) и использоваться для объявления класса и его создания. Обратите внимание на Win ниже:

XAML

<Window x:Class="FrameApp.UI.Invoice.Win" ...>

код-за

namespace FrameApp.UI.Invoice
{
    public partial class Win : Window
    {
        public Win()
    }
}

Очевидный недосмотр, но он отбросил меня назад на час со всеми появившимися ошибками.

Ответ 16

У меня была такая же проблема только сейчас, и я нашел ее одной из самых простых оплошностей. Я создавал классы, копировал и вставлял код из одного файла класса в другие. Когда я, например, изменил имя класса, например Class2, появилось выпадающее меню рядом с именем класса, спрашивающее, хочу ли я изменить все ссылки на Class2, который, когда я выбрал "да", в свою очередь изменил Class1 имя для класса 2.

Как я уже сказал, это очень простой надзор, который заставил меня почесывать голову на короткое время, но дважды проверьте ваши другие файлы, особенно исходный файл, который вы скопировали, чтобы убедиться, что VS не изменил имя на вас, за кулисами.

Ответ 17

Если вы используете разные файлы aspx.cs, которые определяют классы с тем же именем, вы можете использовать

<compilation targetFramework="4.5" />

под <system.web> в файле web.config.

Хотя я все же настоятельно рекомендую вам изменить имя класса.

Ответ 18

У меня была аналогичная проблема (Universal Project, Visual Studio 2015), я решил ее со следующими изменениями:

В App.xml.cs было (это было нормально):

namespace Test.Main {

Неверная старая версия App.xml:

x:Class="Test.Main"

Хорошо, новая версия App.xml:

x:Class="Test.Main.App"

Ответ 19

Это не самое лучшее решение, но если вам действительно все равно, это простое решение. Я просто переименовал свой класс. Поэтому у меня была классная карта, и я поменял ее на MyCard.

Ответ 20

Я думаю, что эта проблема связана с тем, что вы добавили для одной таблицы 2 класса DAL. Если эта таблица включена в отношение, то удалите для нее table_name.dbml и сохраните это для связанных таблиц. Вы должны использовать один из них.

Ответ 21

У меня была эта проблема, но моя немного отличалась от проблем, упомянутых здесь. Я очищал свой проект и перемещал некоторые классы в новые папки. У меня был класс "AddFilter", который я переместил в папку "AddFilter" - так что я фактически получил класс, который разделял имя пространства имен. Сначала это было немного сложно обнаружить, потому что я не мог найти другие классы, с которыми он конфликтовал; вместо этого он конфликтовал с пространством имен.

Ответ 22

Это случилось со мной, я заметил, что на самом деле есть еще один класс с тем же именем в том же пространстве имен "OtpService.Models.Request", поэтому все, что я сделал, это просто изменил пространство имен 2-го класса на "OtpService.Models.Request"..ExtraObj". Я сделал это, потому что я не хотел менять имя конфликтующего класса на что-то еще.

Ответ 23

Я столкнулся с этой неполной проблемой классов в winform решения после преобразования из .net 4.5.1 в 4.7.2.

Изначально проблема компилятора заключалась не в частичном классе, а в использовании properties.default... без квалификации. После добавления Global :: solnNameSpace. квалификаторы, тогда я получил частичную проблему класса.

просмотрев ответы в этой теме, я посмотрел файл конструктора ресурсов и обнаружил, что он был создан с явным solnNameSpace, а классы в решении - нет. Кроме того, solnNameSpace совпадает с именем проблемного имени класса.

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

Ответ 24

У меня была эта проблема. Это произошло из-за того, что я переименовал папку в каталоге App_Code и выпустил в папку на своем сайте iis. Исходная именованная папка все еще присутствовала в моем целевом каталоге - следовательно, дубликат - (я не делаю полное удаление цели перед копированием). В любом случае удаление старой папки исправило это.

Ответ 25

Если вы копируете и вставляете свои страницы, не забудьте переименовать имена классов. В противном случае вы получите эту ошибку также: "Тип уже определяет элемент с именем" OnGet "с такими же типами параметров"