MissingManifestResourceException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn die Hauptassembly nicht die Ressourcen für die neutrale Kultur enthält, und eine entsprechende Satellitenassembly fehlt.

public ref class MissingManifestResourceException : Exception
public ref class MissingManifestResourceException : SystemException
public class MissingManifestResourceException : Exception
public class MissingManifestResourceException : SystemException
[System.Serializable]
public class MissingManifestResourceException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class MissingManifestResourceException : SystemException
type MissingManifestResourceException = class
    inherit Exception
type MissingManifestResourceException = class
    inherit SystemException
[<System.Serializable>]
type MissingManifestResourceException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MissingManifestResourceException = class
    inherit SystemException
Public Class MissingManifestResourceException
Inherits Exception
Public Class MissingManifestResourceException
Inherits SystemException
Vererbung
MissingManifestResourceException
Vererbung
MissingManifestResourceException
Attribute

Hinweise

Eine MissingManifestResourceException Ausnahme wird aus unterschiedlichen Gründen in .NET- und UWP-Apps ausgelöst.

.NET-Anwendungen

In .NET Apps wird MissingManifestResourceException ausgelöst, wenn der Versuch, eine Ressource abzurufen, fehlschlägt, weil das Ressourcen Set für das neutrale Gebietsschema nicht aus einer bestimmten Assembly geladen werden konnte. Obwohl die Ausnahme ausgelöst wird, wenn Sie versuchen, eine bestimmte Ressource abzurufen, wird sie durch den Fehler beim Laden des Ressourcensatzes und nicht durch den Fehler beim Auffinden der Ressource verursacht.

Note

Weitere Informationen finden Sie im Abschnitt "Umgang mit einer MissingManifestResourceException-Ausnahme" im Thema der ResourceManager-Klasse.

Die Hauptursachen der Ausnahme sind:

  • Das Ressourcenset wird nicht durch seinen voll qualifizierten Namen identifiziert. Wenn beispielsweise der baseName Parameter im Aufruf der ResourceManager.ResourceManager(String, Assembly) Methode den Stammnamen des Ressourcensatzes ohne Namespace angibt, dem Ressourcensatz jedoch ein Namespace zugewiesen wird, wenn er in der Assembly gespeichert ist, löst der Aufruf der ResourceManager.GetString Methode diese Ausnahme aus.

    Wenn Sie die .resources-Datei, die die Ressourcen des Standard-Gebietsschemas enthält, in Ihre ausführbare Datei eingebettet haben und Ihre App ein MissingManifestResourceException auslöst, können Sie ein Reflection Tool wie z. B. den IL Disassembler (Ildasm.exe) verwenden, um den vollqualifizierten Namen der Ressource zu ermitteln. Doppelklicken Sie in ILDasm auf die MANIFEST-Bezeichnung der ausführbaren Datei, um das MANIFEST-Fenster zu öffnen. Ressourcen werden als .mresource Elemente angezeigt und nach externen Assemblyverweisen und benutzerdefinierten Attributen auf Assemblyebene aufgelistet. Sie können auch das folgende einfache Hilfsprogramm kompilieren, das die vollqualifizierten Namen eingebetteter Ressourcen in der Assembly auflistet, deren Name als Befehlszeilenparameter an sie übergeben wird.

    using System;
    using System.IO;
    using System.Reflection;
    using System.Resources;
    
    public class Example
    {
       public static void Main()
       {
          if (Environment.GetCommandLineArgs().Length == 1) { 
             Console.WriteLine("No filename.");
             return;
          }
          
          string filename = Environment.GetCommandLineArgs()[1].Trim();
          // Check whether the file exists.
          if (!File.Exists(filename)) {
             Console.WriteLine("{0} does not exist.", filename);
             return;
          }   
          
          // Try to load the assembly.
          Assembly assem = Assembly.LoadFrom(filename);
          Console.WriteLine("File: {0}", filename);
             
          // Enumerate the resource files.
          string[] resNames = assem.GetManifestResourceNames();
          if (resNames.Length == 0)
             Console.WriteLine("   No resources found.");
    
          foreach (var resName in resNames)
             Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""));
    
          Console.WriteLine();
       }
    }
    
    Imports System.IO
    Imports System.Reflection
    Imports System.Resources
    
    Module Example
       Public Sub Main()
          If Environment.GetCommandLineArgs.Length = 1 Then 
             Console.WriteLine("No filename.")
             Exit Sub
          End If
          Dim filename As String = Environment.GetCommandLineArgs(1).Trim()
          ' Check whether the file exists.
          If Not File.Exists(filename) Then
             Console.WriteLine("{0} does not exist.", filename)
             Exit Sub
          End If   
          
          ' Try to load the assembly.
          Dim assem As Assembly = Assembly.LoadFrom(filename)
          Console.WriteLine("File: {0}", filename)
             
          ' Enumerate the resource files.
          Dim resNames() As String = assem.GetManifestResourceNames()
          If resNames.Length = 0 Then
             Console.WriteLine("   No resources found.")
          End If
          For Each resName In resNames
             Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""))
          Next
          Console.WriteLine()
       End Sub
    End Module
    
  • Sie identifizieren den Ressourcensatz über seinen Ressourcendateinamen (zusammen mit dem optionalen Namespace) und die Dateierweiterung, anstatt allein durch den Namespace und den Stammdateinamen. Diese Ausnahme wird beispielsweise ausgelöst, wenn der Ressourcensatz der neutralen Kultur benannt GlobalResources ist und Sie einen Wert von GlobalResources.resources (anstelle von GlobalResources) für den baseName Parameter des ResourceManager.ResourceManager(String, Assembly) Konstruktors angeben.

  • Der kulturspezifische Ressourcensatz, der in einem Methodenaufruf identifiziert wird, kann nicht gefunden werden, und der Fallbackressourcensatz kann nicht geladen werden. Wenn Sie beispielsweise Satellitenassemblys für die Kulturen Englisch (USA) und Russland (Russisch) erstellen, aber keine Ressourcen für die neutrale Kultur bereitstellen, wird diese Ausnahme ausgelöst, wenn die aktuelle Kultur Ihrer App Englisch (Vereinigtes Königreich) ist.

MissingManifestResourceException verwendet das HRESULT COR_E_MISSINGMANIFESTRESOURCE, das den Wert 0x80131532 hat.

MissingManifestResourceException verwendet die Standardimplementierung Equals , die die Referenzgleichheit unterstützt.

Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von MissingManifestResourceException, finden Sie unter den MissingManifestResourceException Konstruktoren.

Note

Es wird empfohlen, eine neutrale Gruppe von Ressourcen in die Hauptassembly aufzunehmen, sodass ihre App nicht fehlschlägt, wenn eine Satellitenassembly nicht verfügbar ist.

Konstruktoren

Name Beschreibung
MissingManifestResourceException()

Initialisiert eine neue Instanz der MissingManifestResourceException Klasse mit Standardeigenschaften.

MissingManifestResourceException(SerializationInfo, StreamingContext)
Veraltet.

Initialisiert eine neue Instanz der MissingManifestResourceException Klasse aus serialisierten Daten.

MissingManifestResourceException(String, Exception)

Initialisiert eine neue Instanz der MissingManifestResourceException Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die die Ursache dieser Ausnahme ist.

MissingManifestResourceException(String)

Initialisiert eine neue Instanz der MissingManifestResourceException Klasse mit der angegebenen Fehlermeldung.

Eigenschaften

Name Beschreibung
Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Dient zum Abrufen oder Festlegen eines Links zur Hilfedatei, die dieser Ausnahme zugeordnet ist.

(Geerbt von Exception)
HResult

Dient zum Abrufen oder Festlegen von HRESULT, einem codierten numerischen Wert, der einer bestimmten Ausnahme zugewiesen ist.

(Geerbt von Exception)
InnerException

Ruft die Exception Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Nachricht ab, die die aktuelle Ausnahme beschreibt.

(Geerbt von Exception)
Source

Dient zum Abrufen oder Festlegen des Namens der Anwendung oder des Objekts, das den Fehler verursacht.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames im Aufrufstapel ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetBaseException()

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Exception Ursache einer oder mehrerer nachfolgenden Ausnahmen zurückgegeben.

(Geerbt von Exception)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)
Veraltet.

Wenn sie in einer abgeleiteten Klasse überschrieben wird, werden die SerializationInfo Informationen zur Ausnahme festgelegt.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt und gibt eine Zeichenfolgendarstellung der aktuellen Ausnahme zurück.

(Geerbt von Exception)

Ereignisse

Name Beschreibung
SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält.

(Geerbt von Exception)

Gilt für:

Weitere Informationen