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

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
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
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): Per ulteriori informazioni sulle classi parziali e Progettazione Windows Form, visitare il seguente sito Web MSDN:
  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 someClassEnd 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".

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 318603 - Ultima revisione: 12/07/2015 09:04:39 - Revisione: 4.3

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

  • kbnosurvey kbarchive kbmt kbvs2005applies kbvs2005swept kbprb KB318603 KbMtit
Feedback