【问题标题】:What could cause Visual Studio / C# error MSB3105: Duplicate resources什么可能导致 Visual Studio / C# 错误 MSB3105:重复资源
【发布时间】:2008-11-24 09:02:44
【问题描述】:

在处理现有项目时,我在尝试编译解决方案时突然遇到以下错误:

错误 MSB3105:在“资源”参数中多次指定了“[文件名]”项。 “资源”参数不支持重复项。

现在,据我所知,我没有对影响资源的项目进行任何更改。我还检查了项目中的每个文件,但在任何地方都没有对该文件的重复引用。 现在我已经找到了一些关于这个错误的论坛条目:

1) 打开 .csproj 文件并删除重复的引用。 [试过这个,但我找不到任何重复项]

2) 在“部分类”项目中,将所有内容移至单个类。 [可以试试这个,但是项目从一开始就被分成了部分类,我不想仅仅因为错误而改变它]

那么还有什么可能导致这种情况?

【问题讨论】:

标签: c# visual-studio


【解决方案1】:

您是否尝试在解决方案资源管理器中显示所有文件?您可能在其中的某处有一个重复的 .rsx 文件。

【讨论】:

  • 感谢您的建议。但我做到了,我没有找到重复的。我还尝试查找重复的表单,因为有人建议我可能不小心复制了表单。
【解决方案2】:

我在 Roy Green 的 .NET forum posting 中找到了答案,虽然我不认识,但特蕾莎毕竟是对的。
如果您将主表单类拆分为部分类,则部分部分最终会作为单独的项目出现在解决方案资源管理器中。如果您双击它们,它们会以正常形式显示在设计器模式中。但是,如果您(不小心)在这些窗体上放置了一个控件,Visual Studio 会为其创建一个新的 .resx 文件和一个 InitializeComponent 例程。但由于此表单实际上只是 Main Form 类的一部分,因此会导致“重复资源”错误。除了删除 InitializeComponent 例程并手动删除 .resx 文件之外,没有其他解决方案。

【讨论】:

    【解决方案3】:

    确保在 yourForm.cs 下没有定义重复的资源 (.resx)。如果您重命名了表单,请删除旧资源,因为在编译期间将使用新名称创建新资源。

    【讨论】:

      【解决方案4】:

      我刚刚犯了同样的错误。删除mainform.designer.vb,然后我又从回收站恢复了,编译的时候发现这个错误信息。 我尝试在谷歌上搜索,有人建议检查 .vbproj。这样做并在某些行上找到了重复项。

      【讨论】:

        【解决方案5】:

        我也有这个,在 VB 中。有“真实形式”文件frmMain,然后我创建了新的类文件并将它们修改为部分公共类frmMain。例如,我有一个 ImportFromExcel.vb 部分类文件(我不想用相当复杂的 Excel 导入代码把 frmMain.vb 弄乱。) p>

        一切正常,直到我决定要在子 ImportFromExcel 中使用 OpenFileDialog。我将 OFD 从工具箱拖到 ImportFromExcel 文件的设计器视图中。 (我不知道为什么这个视图存在,如果你不能用它做任何事情!) 但是无论如何......将 OFD 拖到 Partial Class Designer 创建了一个 ImportFromExcel。 resx 文件。拖放操作还在 ImportFromExcel 中创建了 InitializeComponent 子程序,这是多余的并显示错误 - 只需稍加编辑即可轻松纠正。

        最终,我选择不使用拖动的资源,而是将代码本地化到 ImportFromExcel.vb 文件中。

        您真正需要做的就是右键单击 ImportFromExcel.resx 文件,然后选择删除。其他一切似乎都在“自我修复”,现在构建良好。

        【讨论】:

        • 解决类似问题的好方法。但是也许您应该将其添加为新问题/答案,以便 VB 用户可以找到它?
        【解决方案6】:

        在我的情况下,发生此问题是因为 GIT 存储库中的文件具有相同的名称但大小写不同。 例如MyFile.csmyFile.cs

        如果您在 Windows 上进行结帐,其中一个文件会被另一个文件覆盖(无消息,无警告)。所以,它正在编译,我们没有注意到任何东西。但是,如果您尝试在 Linux(使用 .NET Core)上编译,这两个文件都存在,并且在编译时会出现此错误。

        【讨论】:

        • 同样的问题,必须通过 ssh 进入我们的构建服务器和git rm <path to file>
        猜你喜欢
        • 2015-09-28
        • 2019-03-09
        • 1970-01-01
        • 1970-01-01
        • 2015-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-18
        相关资源
        最近更新 更多