MissingManifestResourceException Klasa

Definicja

Wyjątek zgłaszany, jeśli główny zestaw nie zawiera zasobów dla kultury neutralnej, a brakuje odpowiedniego zestawu satelitarnego.

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
Dziedziczenie
MissingManifestResourceException
Dziedziczenie
MissingManifestResourceException
Atrybuty

Uwagi

Aplikacje platformy .NET

W aplikacjach .NET Framework i .NET Core jest zgłaszany, gdy próba pobrania zasobu zakończy się niepowodzeniem, MissingManifestResourceException ponieważ nie można załadować zestawu zasobów dla kultury neutralnej. Chociaż wyjątek jest zgłaszany podczas próby pobrania określonego zasobu, jest to spowodowane niepowodzeniem załadowania zestawu zasobów, a nie błędem znalezienia zasobu.

Uwaga

Aby uzyskać dodatkowe informacje, zobacz sekcję "Obsługa wyjątku ResourceManager MissingManifestResourceException" w temacie klasy.

Główne przyczyny wyjątku obejmują następujące elementy:

  • Zestaw zasobów nie jest identyfikowany przez w pełni kwalifikowaną nazwę. Jeśli na przykład baseName parametr w wywołaniu ResourceManager.ResourceManager(String, Assembly) metody określa nazwę główną zestawu zasobów bez przestrzeni nazw, ale zestaw zasobów jest przypisany do przestrzeni nazw, gdy jest przechowywany w zestawie, wywołanie ResourceManager.GetString metody zgłasza ten wyjątek.

    Jeśli osadzono plik resources zawierający zasoby kultury domyślnej w pliku wykonywalnym, a aplikacja zgłasza wyjątek MissingManifestResourceException, możesz użyć narzędzia odbicia, takiego jak dezasembler IL (Ildasm.exe), aby określić w pełni kwalifikowaną nazwę zasobu. W pliku ILDasm kliknij dwukrotnie etykietę MANIFEST pliku wykonywalnego, aby otworzyć okno MANIFEST . Zasoby są wyświetlane jako .mresource elementy i są wyświetlane po odwołaniach do zestawu zewnętrznego i niestandardowych atrybutach na poziomie zestawu. Można również skompilować następujące proste narzędzie, które wyświetla listę w pełni kwalifikowanych nazw zasobów osadzonych w zestawie, którego nazwa jest przekazywana do niego jako parametr wiersza polecenia.

    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
    
  • Można zidentyfikować zasób ustawiony przez jego nazwę pliku zasobów (wraz z opcjonalną przestrzenią nazw) i jego rozszerzenie pliku, a nie przez samą przestrzeń nazw i nazwę pliku głównego. Na przykład ten wyjątek jest zgłaszany, jeśli zestaw zasobów neutralnej kultury ma nazwę GlobalResources i podajesz wartość GlobalResources.resources (zamiast GlobalResources) do baseName parametru konstruktora ResourceManager.ResourceManager(String, Assembly) .

  • Nie można odnaleźć zestawu zasobów specyficznych dla kultury identyfikowanego w wywołaniu metody, a nie można załadować rezerwowego zestawu zasobów. Jeśli na przykład tworzysz zestawy satelitarne dla kultur angielskich (Stany Zjednoczone) i Rosji (Rosyjski), ale nie możesz podać zestawu zasobów dla kultury neutralnej, ten wyjątek jest zgłaszany, jeśli bieżąca kultura aplikacji jest angielska (Wielka Brytania).

MissingManifestResourceException używa COR_E_MISSINGMANIFESTRESOURCE HRESULT, który ma wartość 0x80131532.

MissingManifestResourceException używa domyślnej Equals implementacji, która obsługuje równość odwołań.

Aby uzyskać listę początkowych wartości właściwości dla wystąpienia programu MissingManifestResourceException, zobacz MissingManifestResourceException konstruktory.

Uwaga

Zalecamy uwzględnienie neutralnego zestawu zasobów w zestawie głównym, więc aplikacja nie powiedzie się, jeśli zestaw satelitarny jest niedostępny.

aplikacje platforma uniwersalna systemu Windows (UWP)

Aplikacje platformy uniwersalnej systemu Windows wdrażają zasoby dla wielu kultur, w tym kulturę neutralną, w jednym pliku indeksu zasobów pakietu (pri). W związku z tym w aplikacji platformy UWP, jeśli nie można odnaleźć zasobów preferowanej kultury, element MissingManifestResourceException jest zgłaszany w ramach jednego z następujących warunków:

  • Aplikacja nie zawiera pliku pri lub nie można otworzyć pliku pri.

  • Plik pri aplikacji nie zawiera zestawu zasobów dla danej nazwy głównej.

Konstruktory

MissingManifestResourceException()

Inicjuje MissingManifestResourceException nowe wystąpienie klasy z domyślnymi właściwościami.

MissingManifestResourceException(SerializationInfo, StreamingContext)

Inicjuje MissingManifestResourceException nowe wystąpienie klasy z serializacji danych.

MissingManifestResourceException(String)

Inicjuje MissingManifestResourceException nowe wystąpienie klasy z określonym komunikatem o błędzie.

MissingManifestResourceException(String, Exception)

Inicjuje nowe wystąpienie MissingManifestResourceException klasy z określonym komunikatem o błędzie i odwołaniem do wewnętrznego wyjątku, który jest przyczyną tego wyjątku.

Właściwości

Data

Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.

(Odziedziczone po Exception)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku.

(Odziedziczone po Exception)
InnerException

Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek.

(Odziedziczone po Exception)
Message

Pobiera komunikat opisujący bieżący wyjątek.

(Odziedziczone po Exception)
Source

Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd.

(Odziedziczone po Exception)
StackTrace

Pobiera reprezentację ciągu natychmiastowych ramek w stosie wywołań.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.

(Odziedziczone po Exception)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBaseException()

Po przesłonięciu w klasie pochodnej funkcja zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)

Po zastąpieniu w klasie pochodnej ustawia SerializationInfo element z informacjami o wyjątku.

(Odziedziczone po Exception)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState
Nieaktualne.

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku zawierającego serializowane dane o wyjątku.

(Odziedziczone po Exception)

Dotyczy

Zobacz też