【问题标题】:The item was specified more than once in the "Resources" parameter. Duplicate items are not supported by the "Resources" parameter在“资源”参数中多次指定了该项目。 “资源”参数不支持重复项目
【发布时间】:2013-01-31 03:34:30
【问题描述】:

在编译我的 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

【问题讨论】:

    标签: c# vb.net visual-studio-2010 resources resx


    【解决方案1】:

    简单!

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

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

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

    4. 保存并关闭。

    5. 右键选择“重新加载项目”view image

    【讨论】:

    • 就在这里。我的问题是共享解决方案的.projitems 文件两次引用了同一个文件。只需查看您所有的项目(.csproj.vbproj 等)文件,看看错误消息所说的文件名是否重复。然后只删除所有引用它的行。
    • 原来 .csproj 已经有一个包含所有 .cs 文件的项目,所以当 VS 2017 添加新类时,它创建了不需要的项目。
    【解决方案2】:

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

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

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

    我花了一段时间,但最终发现 IDE 已将 Form1Copy of Form1 都重命名为 Form2

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

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

    【讨论】:

    • 也取决于文件的类型,但我在使用 XAML 文件时遇到了这个问题——我想它可以应用于其他需要 VS 才能正常使用设计器的文件。通过查看代码打开您复制的文件,并确保所有名称都已整理好。就我而言,VS 不知道如何在 XML 中重命名其中的一些变量。
    • @Mattygabe:谢谢!很高兴知道。
    • 这正是我的问题。我还将表单复制/粘贴到同一个项目中,并且重命名并没有按照应有的方式重命名所有内容。我还必须为新粘贴的表单重命名 Form.Designer.cs 文件中的类名。
    • 通过 SharePoint 工作流实现了这一点。我复制了一个并将其重命名,但在 Workflow.xaml(3 个点)和 SharePointProjectItem.spdata(每个关联 2 个点 +1 个)文件中重命名不完整。我手动更新了这些,一切都正确构建。
    【解决方案3】:

    我遇到了同样的错误,就我而言,我解决了这个问题,如下所示。

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

    希望这对您有所帮助。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

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

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

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

        【讨论】:

          【解决方案6】:

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

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

          从这个例子:

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

          它应该可以工作。

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-10-05
              • 2013-07-03
              • 2018-05-30
              • 2020-10-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多