如何修复"命名空间x已经包含x的定义"错误?转换为VS2010后发生了变化

sto*_*ist 50 c# compiler-errors visual-studio-2010

特别是错误发生在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>
Run Code Online (Sandbox Code Playgroud)

任何想法都将不胜感激.

joh*_*nny 44

大约一年前我遇到过这种情况,我不记得根本原因是什么,但有两件事你可能会尝试:

  1. 如果它是一个自动生成的文件(因为'Resources.Designer.cs'倾向于),请尝试删除它并让VS重新生成它.
  2. 单独或与#1一起,Show All Files在解决方案资源管理器中选择或在Windows资源管理器中打开解决方案文件夹 - 可能是某个版本的文件以某种方式被排除在项目之外,因此对VS"隐身"但仍然使其成为可能愤怒...

  • 只需删除*.Designer.cs就可以了,谢谢! (3认同)
  • 只是想补充一点,当我这样做时文件没有自动重新生成,但是来回切换Access Modifier(在RESX文件上)重新生成了Designer.cs文件. (3认同)
  • 想出来 - 只是一直搞乱重建并且它起作用了.万分感谢 (2认同)

War*_*mak 27

我也有这个问题,这是因为我创建了一个新的命名空间,但是父命名空间包含一个具有相同名称的类.

  • 在我的情况下,我首先找不到命名空间,因为我没有使用该名称定义任何命名空间.我发现这个名称空间是由VS从包含文件夹的名称生成的. (3认同)

小智 15

这是一个老问题,但我没有找到我使用的修复,所以我在这里添加了它.

在我的例子中,它是一个名称空间,与父名称空间中的类同名.

为了找到这个,我使用了对象浏览器并搜索了已经定义的项目的名称.

如果在您仍有错误时不允许您这样做,则暂时更改其抱怨的项目的名称,然后找到有问题的项目.


Car*_*ona 13

看起来像VS代码的OmniSharp中的一个错误.

我的解决方案是执行命令"Restart OmniSharp".

只需这样做: - ctr shift P - 类型"重启OmniSharp"..点击进入

这为我修好了.

  • 旧线程,但是由于最初的问题是关于VS2010而不是VS Code的,所以我可以理解为什么它没有太多可见性。如果您使用的是VS Code,那么此答案很有价值。这解决了OP使用Visual Studio Code报告的相同问题。 (4认同)
  • @VinnyGuitara 我偶然发现了这个线程,正是因为我遇到了 VS Code 的问题。 (2认同)
  • 是啊。我无法强调搜索 Visual Studio 答案并找到 Visual Studio 代码答案有多么棒。或者反过来。但是,嘿,我想微软最清楚的是,当他们以成熟的企业级 IDE 命名一款美化的记事本时。 (2认同)

joe*_*aya 6

不幸的是,其他答案都没有帮助。我的问题专门发生在WPF项目中。

当我在文件夹下创建一个文件夹时出现了问题,该MainWindow文件夹实际上创建了类似的命名空间ProjectName.MainWindow.Folder。现在,我相信由于某些静态设计器代码,Visual Studio在类MainWindow和名称空间之间感到困惑Project.MainWindow.Folder。作为解决方案,我将Folder移出MainWindow。查看类视图或解决方案/项目有助于识别其中存在哪些名称空间和类。


Dal*_*ton 6

很多次对我有帮助的只是将其关闭然后再次打开..

Ctrp + shift + P -> VS Code 中的重新加载窗口

关闭并打开项目/窗口。

清理所有 bin、obj 内容(在 power shell 中)

Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
Run Code Online (Sandbox Code Playgroud)

在此之后,我可能会丢失其他东西,例如某些包引用或包含,但通常情况下,底层解析器/编译器(omnisharp)会变得混乱,需要重新启动才能再次正常工作。


gon*_*ins 5

这件事刚刚发生在我身上。发生的事情是我复制了一个最初受源代码控制的项目。尽管我正确地重命名了所有内容,但所有文件的文件权限仍然设置为只读。当我开始修改某些表单控件时,Visual Studio 自动创建了一个 Resource1 文件,因为原始 Resource 文件是只读的。

我为解决此问题所做的操作如下:

  1. 允许对项目文件的写入权限。
  2. 删除了原来的资源文件
  3. Ctrl-A 用于所有表单元素,然后 Ctrl-X 剪切它们。
  4. 保存表格。
  5. Ctrl-V 将它们全部粘贴回来。
  6. 保存表格。

我必须这样做,因为自动生成的代码不会自行更新,所以我通过更改表单来“强制”它更新。如果不这样做,则会留下表单元素中的一堆代码,这些代码在更改文件权限之前已不再存在。