Möglicherweise wird eine Fehlermeldung "System.Resources.MissingManifestResourceException" angezeigt, wenn Sie die resources-Datei des Formulars zur Laufzeit zugreifen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 318603 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie Ihre Visual Basic .NET oder Visual Basic 2005, Visual c# .NET oder Visual j# .NET Windows-Anwendung ausgeführt werden, erhalten Sie folgende Fehlermeldung oder eine ähnliche, wenn Sie ein Formular laden:
Eine nicht behandelte Ausnahme vom Typ 'System.Resources.MissingManifestResourceException' ist in mscorlib.dll aufgetreten

Weitere Informationen: konnte nicht in der angegebenen Assembly gefunden alle Ressourcen für die angegebene Kultur (oder die neutrale Kultur) geeignet. Stellen Sie sicher "Form1.resources" eingebettete oder verknüpfte in Assembly "MyApplication" korrekt war.

BaseName: Form1 LocationInfo: WindowsApplication4.Form1 Ressourcendateiname: Form1.resources Assembly: MyApplication, Version = 1.0.781.33026, Culture = Neutral, PublicKeyToken = Null
Wenn Sie im Dialogfeld Fehler unterbrechen klicken , und wenn Sie den Code in der integrierten Entwicklungsumgebung (IDE) ausführen, Sie entdecken, bewirkt eine Codezeile innerhalb der InitializeComponent -Anweisung dieses Problem. Beispielsweise wenn Sie das Beispiel aus dem Abschnitt "Weitere Informationen" erstellen, tritt dieser Fehler in Verbindung mit einem Listenansicht -Steuerelement. Obwohl der Fehlermeldung auf ein Steuerelement verschiedene verweisen kann, Beachten Sie, auf die Codezeile in der Fehlermeldung, resources.GetObject angezeigt wird:
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));

Ursache

Dieses Problem, da die Form -Klasse nicht die erste Klasse im Codemodul des Formulars ist.

Hinweis: Dieser Artikel Dokumente eine bestimmte bewirken, dass dieses Problem. Möglicherweise sind andere Situationen, die zu ähnlichen Ergebnissen führen können.

Lösung

Um dieses Problem zu beheben, verschieben Sie aller anderen Klassendefinitionen, so dass Sie nach der Klassendefinition des Formulars angezeigt werden.

Abhilfe

Um dieses Problem zu umgehen, ändern Sie die Ressourcendateiname -Eigenschaft der .resx-Datei des Projekts. Gehen Sie hierzu folgendermaßen vor:
  1. Starten Sie Visual Studio .NET 2003 oder Visual Studio 2005 .
  2. Öffnen Sie das Projekt, das die lokalisierte Form-Klasse enthält, dass die Fehlermeldung wird, die im Abschnitt "Problembeschreibung" erwähnte.
  3. Erweitern Sie im Projektmappen-Explorer alle Ordner.
  4. Klicken Sie mit der rechten Maustaste auf Form1.resX , und klicken Sie dann auf Eigenschaften .
  5. Im Dialogfeld Eigenschaftenseiten Form1.resX erweitern Sie Konfiguration , und klicken Sie dann unter Verwalteten Ressourcen auf Allgemein .
  6. Ändern Sie die Ressourcendateiname -Eigenschaft von $(IntDir)/ <placeholder>. Form1.resources auf $(IntDir) / <placeholder>.MyForm Resources-, und klicken Sie dann auf OK .

    Hinweis: MyForm ist ein Platzhalter für den Klassennamen der Formular-Klasse, die Sie lokalisiert.
  7. Drücken Sie STRG + UMSCHALT + S, um das Projekt speichern. Drücken Sie STRG + UMSCHALT + B, um die Projektmappe zu erstellen.Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    824495Update Wenn Sie in Visual Studio .NET 2003 eine verknüpfte Ressource hinzufügen, erhalten eine "MissingManifestResourceException" Fehlermeldung
  8. Drücken Sie [F5], um die Anwendung auszuführen. Die Anwendung ausgeführt wird, und das Formular Form1 Formular angezeigt wird.
.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Ein Form-Codemodul kann mehrere Klassen enthalten. Wenn das Projekt erstellt wird, muss das Buildsystem die Klasse entscheiden, Sie verwenden sollten, um die resources-Datei erstellen. Der Entwurf des Buildsystems Projekt gibt, dass die erste Klasse im Codemodul die Klasse ist auf der die resources-Datei basiert. Die resources-Datei ist gemäß dieser Klasse nicht den Namen des Formulars benannt. In den meisten Fällen sind diese beiden Namen identisch. Wenn diese Namen unterscheiden, erhalten Sie jedoch die Fehlermeldung, das im Abschnitt "Problembeschreibung" genannt wird.

Wenn Sie das Formular zur Laufzeit laden, möglicherweise die InitializeComponent -Methode Objekte aus der resources-Datei abgerufen werden. InitializeComponent sucht nach der Form_Name resources-Datei in der Assembly. Da die anfängliche Form_Name .resources-Datei wurde nie erstellt oder mit der Assembly verknüpft, schlägt fehl beim Abrufen von resources-Datei.

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie ein Windows-Anwendungsprojekt in Visual Basic .NET oder in Visual Basic 2005, Visual c# .NET oder Visual j# .NET. Form1 wird standardmäßig. Hinweis In Visual Studio 2005 erstellt, die folgende Warnmeldung angezeigt:
    Komponenten können im Modus der Lokalisierung nicht hinzugefügt werden. Wählen Sie (Standard), in der Language-Eigenschaft, um zum Standardformular zurückzukehren und Komponenten hinzuzufügen.
    Hinweis: Sie müssen den Code in Visual Basic 2005 ändern. Standardmäßig erstellt Visual Basic zwei Dateien für das Projekt, wenn Sie ein Windows Forms-Projekt erstellen. Wenn das Formular Form1 benannt ist, werden die beiden Dateien, die das Formular darstellen Form1.vb und Form1.Designer.vb benannt. Schreiben Sie Code, in der Datei Form1.vb. Windows Forms-Designer schreibt den Code in der Datei Form1.Designer.vb. Windows Forms-Designer verwendet das partielle Schlüsselwort, um die Implementierung von Form1 in zwei separate Dateien aufzuteilen. Dieses Verhalten verhindert, dass den Designer generierten Code mit dem Code eingefügt wird.

    Weitere Informationen über die neuen Sprachverbesserungen von Visual Basic 2005 die folgenden Microsoft Developer Network (MSDN)-Website:
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Weitere Informationen zu partiellen Klassen und der Windows Forms-Designer die folgenden MSDN-Website:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. Fügen Sie ein ImageList -Steuerelement zu Form1 hinzu.
  3. Fügen Sie eine Symboldatei das ImageList -Steuerelement hinzu.
  4. Fügen Sie im Codemodul von Form1 den folgenden Code vor der Form1-Definition: Visual Basic .NET:
    Public Class someClass
    End Class
    					
    Visual c# und Visual j# .NET:
    public class someClass
    {
    }
    					
  5. Erstellen Sie das Projekt. Beachten Sie, dass das Projekt erfolgreich erstellt.
  6. Führen Sie das Projekt aus. Beachten Sie, dass Sie die Fehlermeldung erhalten, die im Abschnitt "Problembeschreibung" genannt wird.

Eigenschaften

Artikel-ID: 318603 - Geändert am: Freitag, 11. Mai 2007 - Version: 4.3
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbmt kbvs2005applies kbvs2005swept kbprb KB318603 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 318603
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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