web-dev-qa-db-fra.com

L'élément a été spécifié plusieurs fois dans le paramètre "Ressources". Les éléments en double ne sont pas pris en charge par le paramètre "Resources"

Lors de la compilation de mon projet Visual Studio C #, j'obtiens l'erreur suivante:

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.

Cependant, j'ai beaucoup cherché sur Internet, mais aucune des solutions n'a fonctionné pour moi.

J'ai essayé de supprimer le formulaire et de le rajouter dans le projet, mais cela ne fonctionne pas pour moi.

Je n'ai qu'un seul fichier resx.

J'utilise VS 2010.

De plus, j'ai essayé les solutions suivantes mais cela n'a pas fonctionné pour moi:

  1. https://stackoverflow.com/a/7928191/20746
  2. https://stackoverflow.com/a/10066009
32

Facile!

  1. Faites un clic droit sur votre projet et sélectionnez "Décharger le projet"

  2. Cliquez à nouveau avec le bouton droit et "Modifier votre_projet.csproj"

  3. Recherchez les fichiers en double mentionnés dans le message d'erreur et supprimez-les.

  4. Sauver et fermer.

  5. Faites un clic droit pour choisir "Reload Project" voir l'image

34
Marcelo Lujan

J'ai eu ce problème récemment, et je pense avoir compris ma situation particulière, alors peut-être que cela vous aidera.

J'avais utilisé Visual Studio IDE pour copier un formulaire existant (appelons-le Form1). Je l'ai collé dans le même projet (il est arrivé sous la forme Copy of Form1)

J'ai ensuite renommé cette nouvelle copie en Form2.

Cela m'a pris du temps, mais j'ai finalement trouvé que le IDE avait renommé les deux Form1 et Copy of Form1 à Form2

Les noms de fichiers étaient corrects ... seules les classes réelles à l'intérieur étaient nommées.

J'ai renommé manuellement l'original à la classe appropriée et voila, cela a fonctionné.

17
John Kroetch

J'ai eu la même erreur et dans mon cas, j'ai résolu ce problème comme suit.

enter image description here

En bas de la partie en surbrillance se trouvait un autre fichier some_name_not_equal_to_main.resx et après l'avoir supprimé, mon programme commence à fonctionner normalement.

J'espère que cela vous a aidé.

4
Sabri Aziri

Après avoir renommé le fichier, renommez la classe et tous les constructeurs à l'intérieur du nouveau fichier créé. Par défaut, le nom du fichier change mais le nom des classes qu'il contient ne change pas. Faites ainsi le nécessaire.

1
Harpreet Chawla

Je viens d'avoir ce même problème. Pas sûr de la sémantique exacte, mais elle est liée au maintien de plusieurs fichiers comme partie de la classe de formulaire "principale".

Dans mon cas, le IDE l'a mis dans sa tête pour ajouter des routines d'initialisation de formulaire à l'un des fichiers de classe partiels qui n'était pas le formulaire "principal".

Cela a créé deux formes "principales" et le conflit.

La simple recherche des fonctions init ajoutées et leur suppression, ainsi que le fichier .resx associé, ont résolu le problème.

1
klinkenbecker

Si vous avez créé une copie du formulaire, accédez aux propriétés et modifiez le nom du formulaire copié.

Dans la plupart des cas, cela se produit lorsque vous créez la copie du formulaire. Lorsque vous créez une copie du formulaire, le nouveau formulaire porte le même nom que l'ancien. Ce n'est pas l'ancien nom du formulaire qui est changé.

De cet exemple:

J'avais utilisé Visual Studio IDE pour copier un formulaire existant (appelons-le Form1). Je l'ai collé dans le même projet (il est arrivé sous la forme de Copy of Form1). Allez maintenant dans "Copy of Form1 "[] Dans le cas où vous l'avez déjà renommé, ce sera ce nom] Allez dans Propriétés Changer le nom en Form2 (ou le nom de classe que vous voulez)

et ça devrait marcher.

N'oubliez pas également que lorsque vous renommez le nom de la classe, il est possible que les références au nom de la classe dans le code obtiennent également des modifications. Soyez donc prudent. Je proposerai après avoir changé le nom, recompilez le code, de sorte que si les références sont modifiées, vous pouvez revenir au nom de classe d'origine (Form1 dans ce cas). Ensuite, vous pouvez commencer à utiliser vos nouvelles références de classe.

0
sgupta