什么可能导致Visual Studio / C#错误MSB3105:重复资源

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

错误MSB3105:在“Resources”参数中多次指定了“[filename]”项。 “Resources”参数不支持重复项。

现在,据我所知,我没有对影响资源的项目做任何改动。 此外,我已检查项目中的每个文件,但此文件的任何位置都没有重复的引用。 现在我已经找到一些有关此错误的论坛条目:

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

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

那还有什么可能导致这个?

您是否尝试在解决方案资源管理器中显示所有文件 你可以在那里的某个地方有一个重复的.rsx文件。

我在Roy Green 发布的.NET论坛中找到了答案,而Theresa毕竟是正确的,尽管我不认识它。
如果您将主表单类拆分为部分类,则部分部分最终作为单独的项目在解决方案资源管理器中。 如果你双击它们,它们会在设计师模式中显示为普通forms。 但是,如果您(意外地)删除这些表单上的控件,Visual Studio将为其创建一个新的.resx文件和一个InitializeComponent例程。 但由于此表单实际上只是Main Form类的一部分,因此会导致“重复资源”错误。 除了删除InitializeComponent例程并手动删除.resx文件之外,没有其他解决方案。

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

我犯了同样的错误。 删除mainform.designer.vb,然后我再次从回收站恢复它,并在编译时发现此错误消息。 我尝试搜索谷歌和有人建议检查.vbproj。 这样做,并在某些行上发现了重复。

在VB中我也有这个。 有“真实forms”文件frmMain,然后我创建了新的类文件并将它们修改为Partial Public Class frmMain 。 例如,我有一个ImportFromExcel.vb部分类文件(我不想使用相当复杂的Excel导入代码来混淆frmMain.vb 。)

一切正常,直到我决定在Sub ImportFromExcel中使用OpenFileDialog 。 我将OFD从工具箱拖到ImportFromExcel文件的Designer视图中。 (我不知道为什么这个视图存在,如果你不能用它做任何事情!)但无论如何……将OFD拖到Partial Class Designer创建了一个ImportFromExcel.resx文件。 拖放操作还在ImportFromExcel中创建了一个InitializeComponent子,这是一个冗余并显示错误 – 通过一点编辑很容易纠正。

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

您真正需要做的就是右键单击ImportFromExcel.resx文件,然后选择“删除”。 其他所有东西似乎都“自我修复”,现在它建立得很好。