33

在编译我的 Visual Studio C# 项目时,我收到以下错误:

The item "obj\Debug\SampleProject.Forms.MDIMain.resources" was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter.

但是我在互联网上搜索了很多,但没有一个解决方案对我有用。

我试图删除表单并将其重新添加到项目中,但它对我不起作用。

我只有一个resx文件。

我正在使用 VS 2010。

另外,我尝试了以下解决方案,但对我不起作用:

  1. https://stackoverflow.com/a/7928191/2074603
  2. https://stackoverflow.com/a/10066009
4

7 回答 7

37

简单的!

  1. 右键单击您的项目并选择“卸载项目”

  2. 再次右键单击并“编辑 your_project.csproj”

  3. 搜索错误消息中提到的重复文件并将其删除。

  4. 保存并关闭。

  5. 右键单击选择“重新加载项目”查看图像

于 2016-05-31T17:38:30.183 回答
18

我最近遇到了这个问题,我想我弄清楚了我的特殊情况,所以也许它会对你有所帮助。

我曾使用 Visual Studio IDE 复制现有表单(我们称之为Form1)。我将它粘贴到同一个项目中(它到达时Copy of Form1

然后我将该新副本重命名为Form2.

我花了一段时间,但我最终发现 IDE 已将两者重Form1命名Copy of Form1Form2

文件名是正确的......只是命名了里面的实际类。

我手动将原始文件重命名为正确的类,,它起作用了。

于 2013-06-19T21:39:10.557 回答
4

我有同样的错误,在我的情况下,我解决了这个问题,如下所示。

在此处输入图像描述

在突出显示的部分下方是另一个文件 some_name_not_equal_to_main.resx ,删除它后,我的程序开始正常运行。

希望这对您有所帮助。

于 2013-06-22T16:53:56.873 回答
1

我刚遇到同样的问题。不确定确切的语义,但它与将多个文件维护为“主”表单类的一部分有关。

在我的例子中,IDE 将表单初始化例程添加到不是“主”表单的部分类文件之一。

这造成了两种“主要”形式和冲突。

只需找到添加的 init 函数并将它们与关联的 .resx 文件一起删除,即可解决问题。

于 2014-03-24T17:16:30.077 回答
1

重命名文件后,重命名新创建的文件中的类和所有构造函数。默认情况下,文件的名称会更改,但其中的类名称不会更改。所以做有需要的。

于 2014-02-26T07:23:57.323 回答
0

如果您创建了表单副本,请转到属性并更改复制表单的名称。

在大多数情况下,当您创建表单副本时会发生这种情况。当您创建表单的副本时,新表单与旧表单具有相同的名称。它不是旧形式的名称被更改。

从这个例子:

我曾使用 Visual Studio IDE 复制现有表单(我们称之为 Form1)。我将它粘贴到同一个项目中(它作为 Form1 的副本到达)。现在转到“Form1 的副本”[]如果您已经重命名,那么它将是那个名称]转到属性将名称更改为 Form2(或您想要的任何类名)

它应该可以工作。

另外,请记住,当您重命名类名时,代码中对类名的引用也可能会发生变化。所以要小心。我会建议在更改名称后重新编译代码,这样如果更改了引用,那么您可以恢复到原始类名(在这种情况下为 Form1)。然后你就可以开始使用你的新类引用了。

于 2015-03-05T02:07:58.370 回答
0

有时,与另一个类同名的部分类会产生这个问题。尝试找出是否有任何两个具有相同类名的类。删除/重命名其中之一,然后您的问题将得到解决。

于 2021-04-06T14:52:52.487 回答