2013-02-15 15 views
25

Durante la compilazione il mio visivo # progetto di Studio C, sto ottenendo il seguente errore:L'elemento è stato specificato più di una volta nel parametro "Risorse". Duplicare gli oggetti non sono supportati dal parametro "Risorse"

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.

Tuttavia Ho cercato molto su internet ma nessuno della soluzione ha funzionato per me

Ho provato a eliminare il modulo e lo ho aggiunto nuovamente al progetto, ma non funziona per me.

Ho solo un file resx.

Sto usando VS 2010.

Inoltre, ho provato le seguenti soluzioni, ma non ha funzionato per me:

  1. https://stackoverflow.com/a/7928191/2074603
  2. https://stackoverflow.com/a/10066009

risposta

15

ho avuto questo problema di recente e penso di aver capito la mia situazione particolare, quindi forse ti aiuterà.

Avevo utilizzato l'IDE di Visual Studio per copiare un modulo esistente (chiamiamolo Form1). L'ho incollato nello stesso progetto (è arrivato come Copy of Form1)

Ho quindi rinominato quella nuova copia in Form2.

Mi c'è voluto un po ', ma alla fine ho scoperto che l'IDE ha rinominato sia Form1 e Copy of Form1-Form2

I nomi dei file sono stati corretti ... solo le classi reali all'interno sono stati nominati.

Ho rinominato manualmente l'originale nella classe corretta e voilà, ha funzionato.

+2

dipende anche dal tipo di file, ma mi sono imbattuto in questo mentre si lavora con i file XAML - e suppongo che può applicare ad altri file che richiede VS per utilizzare i progettisti normalmente. Apri i file che hai copiato osservando il codice e assicurati che tutti i nomi siano raddrizzati là fuori. Nel mio caso, VS non sapeva come rinominare alcune di quelle variabili nell'XML. – Mattygabe

+0

@Mattygabe: Grazie! Buono a sapersi. –

+0

Questo era esattamente il mio problema. Ho anche copiato/incollato un modulo nello stesso progetto e il nome non ha cambiato il nome di tutto come dovrebbe. Ho anche dovuto rinominare il nome della classe nel file Form.Designer.cs per il modulo appena incollato. –

3

Ho avuto lo stesso errore e nel mio caso, ho risolto questo problema come il seguente.

enter image description here

Giù la parte evidenziata è stato un altro file some_name_not_equal_to_main.resx e dopo la rimozione, il mio programma cominciano a funzionare normalmente.

Spero che questo ti abbia aiutato.

1

Dopo aver rinominato il file, rinominare la classe e tutti i costruttori all'interno del nuovo file creato. Per impostazione predefinita, il nome del file cambia ma il nome delle classi al loro interno non cambia. Quindi fai il necessario.

1

Ho appena avuto lo stesso problema. Non sono sicuro della semantica esatta, ma è legato al mantenimento di più file come parte della classe di form 'Main'.

Nel mio caso, l'IDE si è messo in testa per aggiungere routine di inizializzazione dei moduli a uno dei file di classe parziale che non era il modulo 'principale'.

Che ha creato due forme "principali" e il conflitto.

Trovare semplicemente le funzioni di inizializzazione aggiunte e rimuoverle, insieme al file .resx associato, ha risolto il problema.

0

Se è stata creata una copia del modulo, passare alle proprietà e modificare il nome del modulo copiato.

Nella maggior parte dei casi accade quando si crea la copia del modulo. Quando crei la copia del modulo, il nuovo modulo ha lo stesso nome di quello vecchio. Non è il nome del vecchio modulo è cambiato.

Da questo esempio:

avevo usato l'IDE di Visual Studio per copiare un modulo esistente (chiamiamolo Form1). L'ho incollato nello stesso progetto (è arrivato come copia di Form1). Ora vai a "Copia di Form1" [] Nel caso in cui è già stato rinominato poi sarà quel nome] andare alle proprietà Cambio nome al Form2 (o quello che volete nome della classe)

e dovrebbe funzionare.

Inoltre, ricordare quando si rinomina il nome della classe, è possibile che anche i riferimenti al nome della classe nel codice ottengano delle modifiche. Quindi sii prudente. Ti suggerirò dopo aver cambiato il nome, ricompilare il codice, in modo che se i riferimenti vengono modificati, è possibile ripristinare il nome della classe originale (Form1 in questo caso). Quindi puoi iniziare a usare i tuoi nuovi riferimenti di classe.

16

Facile!

  1. Fare clic con il progetto e selezionare "Progetto Scaricare"

  2. tasto destro del mouse di nuovo e "Modifica your_project.csproj"

  3. Cerca i file duplicati menzionati nel messaggio di errore e rimuovili.

  4. Salvare e chiudere.

  5. tasto destro del mouse per scegliere "Progetto Reload" view image

+0

Questo qui. Il problema per me era il file '.projitems' per una soluzione condivisa che faceva riferimento allo stesso file due volte. Basta cercare in tutti i file proj ('.csproj',' .vbproj', ecc.) Per qualsiasi nome di file che il messaggio di errore sta dicendo è duplicato. Quindi rimuovi tutti tranne una riga che la fa riferimento. – CooperAtlas

Problemi correlati