╚ possibile che riceverai un "System.Resources.MissingManifestResourceException" messaggio di errore quando si accede il file Resources del form in fase di esecuzione

Traduzione articoli Traduzione articoli
Identificativo articolo: 318603 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue il Visual Basic .NET o Visual Basic 2005, Visual C#. NET o applicazione Windows in Visual J# .NET, viene potrebbe essere visualizzato il seguente messaggio di errore o di una simile quando si carica un modulo:
Eccezione non gestita di tipo 'System.Resources.MissingManifestResourceException' in mscorlib.dll

Informazioni aggiuntive: Impossibile trovare le risorse appropriate per la lingua specificata (o la lingua non associata ad alcun paese) nell'assembly specificato. Assicurarsi che "Form1.resources" Ŕ stato correttamente incorporato o collegato nell'assembly "myApplication".

baseName: Form1 locationInfo: nome file di risorse WindowsApplication4.Form1: assembly Form1.Resources: myApplication, versione = 1.0.781.33026, Culture = neutral, PublicKeyToken = null
Se si sceglie Interrompi nella finestra di dialogo errore e se si esegue il codice nell'ambiente di sviluppo integrato (IDE, Integrated Development Environment), si scopre che una riga di codice all'interno dell'istruzione InitializeComponent causa il problema. Ad esempio, se si crea l'esempio dalla sezione "Informazioni", questo errore si verifica in combinazione con un controllo ImageList . Sebbene il messaggio di errore pu˛ fare riferimento a un controllo di diverso, visualizzata tale resources.GetObject su tale riga di codice nel messaggio di errore:
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));

Cause

Questo problema si verifica perchÚ la classe Form non Ŕ la prima classe nel modulo della maschera.

Nota Questo specifico di un articolo documenti causa del problema. Potrebbe trattarsi di altre situazioni che possono portare a risultati simili.

Risoluzione

Per risolvere il problema, spostare tutte le definizioni delle classi in modo che appaiano dopo la definizione di classe del form.

Workaround

Per risolvere questo problema, modificare la proprietÓ di Nome File di risorse del file .resx del progetto. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Avviare Visual Studio .NET 2003 o Visual Studio 2005 .
  2. Aprire il progetto che contiene la classe form localizzata in cui Ŕ visualizzato il messaggio di errore menzionato nella sezione "Sintomi".
  3. In Esplora soluzioni espandere tutte le cartelle.
  4. Fare clic con il pulsante destro del mouse su Form1.resX e quindi fare clic su ProprietÓ .
  5. Nella finestra di dialogo Pagine delle proprietÓ di Form1.resX espandere la ProprietÓ di configurazione e quindi fare clic su Generale in Risorse gestite .
  6. Cambiare la proprietÓ di Nome File di risorse da $(IntDir)/ <placeholder>. Form1.Resources a $ (IntDir) / <placeholder>.Resources MyForm e quindi fare clic su OK .

    Nota MyForm Ŕ un segnaposto per il nome della classe modulo che Ŕ localizzata della classe.
  7. Premere CTRL + MAIUSC + S per salvare il progetto. Premere CTRL + MAIUSC + B per generare la soluzione.Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    824495FIX: ╚ visualizzato un messaggio di errore di "MissingManifestResourceException" quando si aggiunge una risorsa collegata in Visual Studio .NET 2003
  8. Premere F5 per eseguire l'applicazione. L'esecuzione dell'applicazione e all'evento form viene visualizzato.
.

Status

Questo comportamento legato alla progettazione.

Informazioni

Un modulo di codice pu˛ contenere pi¨ classi. Quando viene generato il progetto, Ŕ necessario che il sistema di generazione decidere quale classe deve utilizzare per creare il file resources. La struttura del sistema di generazione progetto specifica che la prima classe nel modulo di codice Ŕ la classe su cui Ŕ basato il file resources. Il file resources Ŕ denominato in base a tale classe, non il nome del modulo. Nella maggior parte dei casi, questi due nomi coincidono. Tuttavia, se questi nomi sono diversi, riceverai il messaggio di errore menzionato nella sezione "Sintomi".

Quando si carica il form in fase di esecuzione, il metodo InitializeComponent potrebbe essere necessario ottenere oggetti dal file resources. InitializeComponent ricerca Form_Name file resources nell'assembly. PerchÚ il primo file resources Form_Name Ŕ stato mai creato o collegato a un assembly, il tentativo di recuperare il file resources non riesce.

Procedura per riprodurre il problema.

  1. Creare un progetto applicazione Windows in Visual Basic .NET o in Visual Basic 2005, Visual C# .NET o Visual J#. NET. VerrÓ creato Form1 per impostazione predefinita. Nota In Visual Studio 2005, viene visualizzato il seguente messaggio di avviso:
    Impossibile aggiungere componenti in modalitÓ di localizzazione. Selezionare (default) nella proprietÓ Language per tornare al form predefinito e aggiungere componenti.
    Nota ╚ necessario modificare il codice in Visual Basic 2005. Per impostazione predefinita, in Visual Basic due file per il progetto viene creata quando si crea un progetto Windows Form. Se il modulo denominato Form1, i due file che rappresentano il form sono denominati Form1.vb e Form1.Designer.vb. ╚ possibile scrivere il codice nel file Form1.vb. Progettazione Windows Form scrive il codice nel file Form1.Designer.vb. Progettazione Windows Form consente di utilizzato la parola chiave partial per dividere l'implementazione di Form1 in due file distinti. Questo comportamento impedisce che il codice generato per la finestra di progettazione venga frammisto con il codice.

    Per ulteriori informazioni sui miglioramenti apportati nuovo linguaggio Visual Basic 2005, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Per ulteriori informazioni sulle classi parziali e Progettazione Windows Form, visitare il seguente sito Web MSDN:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. Aggiungere un controllo ImageList a Form1.
  3. Aggiungere un file di icona il controllo ImageList .
  4. Nel modulo codice di Form1 aggiungere il seguente codice prima della definizione di Form1: Visual Basic. NET:
    Public Class someClass
    End Class
    					
    Visual C# .NET e Visual J#. NET:
    public class someClass
    {
    }
    					
  5. Generare il progetto. Si noti che viene generato il progetto.
  6. Eseguire il progetto. Si noti che Ŕ visualizzato il messaggio di errore Ŕ indicato nella sezione "Sintomi".

ProprietÓ

Identificativo articolo: 318603 - Ultima modifica: venerdý 11 maggio 2007 - Revisione: 4.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual J# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Chiavi:á
kbmt kbvs2005applies kbvs2005swept kbprb KB318603 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 318603
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com