Подтвердить что ты не робот

Что может вызвать ошибку Visual Studio/С# MSB3105: Дублировать ресурсы

Во время работы над существующим проектом я неожиданно получил следующую ошибку при попытке скомпилировать решение:

error MSB3105: Элемент "[имя_файла]" был указан более одного раза в параметре "Ресурсы". Параметр "Ресурсы" не поддерживается повторяющимися элементами.

Теперь, насколько мне известно, я не внес изменений в проект, который влияет на ресурсы. Также я проверил каждый файл в проекте, но в этом файле нет дублирующей ссылки. Теперь я уже нашел некоторые записи в форуме об этой ошибке:

1) Откройте файл .csproj и удалите дублируемую ссылку. [Пробовал это, но я не могу найти в нем дубликатов)

2) В проекте "partial class" переместите все в один класс. [Мог бы попробовать это, но проект был разделен на частичные классы с самого начала, и я не хочу изменять это только из-за ошибки]

И что еще может вызвать это?

4b9b3361

Ответ 1

Вы пытались показать все файлы в обозревателе решений? У вас может быть дублированный файл .rsx где-то там.

Ответ 2

Я нашел ответ в . Размещение форума в сети от Роя Грина, а Тереза ​​была права, хотя я этого не узнал. < ш > Если ваш основной класс формы разделен на частичные классы, частичные разделы попадают в обозреватель решений как отдельные элементы. И если вы дважды щелкните по ним, они появятся в режиме конструктора как обычная форма. Но если вы случайно удалили элемент управления этими формами, Visual Studio создаст для него новый файл .resx и процедуру InitializeComponent. Но поскольку эта форма на самом деле является лишь частью класса Main Form, это приводит к ошибке "дубликатов ресурсов". И нет другого решения, кроме как удалить процедуру InitializeComponent и удалить файл .resx вручную.

Ответ 3

Убедитесь, что под вашимForm.cs не определены повторяющиеся ресурсы (.resx). Если вы переименовали свою форму, удалите старый ресурс, потому что новый во время компиляции будет создан с новым именем.

Ответ 4

Я только сделал ту же ошибку. Удалите mainform.designer.vb, затем я восстановил его снова из корзины и нашел это сообщение об ошибке при компиляции. Я пытаюсь выполнить поиск по Google, и кто-то предложил проверить .vbproj. Сделал это и нашел дубликат на некоторой строке.

Ответ 5

У меня это тоже было, в VB. Существует файл "real form" frmMain, а затем я создал новые файлы классов и изменил их как Partial Public Class frmMain. Например, у меня есть файл ImportFromExcel.vb Partial Class (я не хотел загромождать frmMain.vb с довольно сложным кодом импорта Excel.)

Все работало нормально, пока я не решил использовать OpenFileDialog в Sub ImportFromExcel. Я перетащил OFD из панели инструментов в представление Designer файла ImportFromExcel. (Я понятия не имею, почему это мнение существует, если вы ничего не можете с ним поделать!) Но во всяком случае... перетаскивание OFD в Partial Class Designer создало файл ImportFromExcel.resx. Операция перетаскивания также создала Sub InitializeComponent в ImportFromExcel, которая является избыточной и показывает ошибку - легко исправляется с небольшим редактированием.

В конечном счете, я решил не использовать перетаскиваемый ресурс, но локализовал код в файле ImportFromExcel.vb.

Все, что вам действительно нужно сделать, это щелкнуть правой кнопкой мыши файл ImportFromExcel.resx и выбрать "Удалить". Все остальное, кажется, "фиксирует себя", и теперь оно прекрасно работает.