MissingManifestResourceException Класс

Определение

Исключение, которое возникает, если основная сборка не содержит ресурсы для нейтрального языка и региональных параметров, а соответствующая сопутствующая сборка отсутствует.

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
Наследование
MissingManifestResourceException
Наследование
MissingManifestResourceException
Атрибуты

Комментарии

В MissingManifestResourceException приложениях .NET и UWP исключение выбрасывается по разным причинам.

Приложения .NET

В приложениях .NET генерируется исключение MissingManifestResourceException в случае, если попытка получить ресурс неудачна, поскольку не удалось загрузить набор ресурсов для нейтральной культуры из конкретной сборки. Хотя исключение возникает при попытке получить определенный ресурс, это вызвано сбоем загрузки набора ресурсов, а не сбоем поиска ресурса.

Note

Дополнительные сведения см. в разделе "Обработка исключения MissingManifestResourceException" в теме класса ResourceManager.

Основными причинами исключения являются следующие:

  • Набор ресурсов не определяется его полным именем. Например, если параметр baseName в вызове метода ResourceManager.ResourceManager(String, Assembly) указывает корневое имя набора ресурсов, без пространства имен, но набор ресурсов получает пространство имен при хранении в своей сборке, то вызов метода ResourceManager.GetString приводит к этому исключению.

    Если вы встроили файл .resources, содержащий ресурсы культуры по умолчанию в свой исполняемый файл, и если ваше приложение выдает MissingManifestResourceExceptionисключение, можно использовать средство отражения, такое как IL Disassembler (Ildasm.exe) для определения полного имени ресурса. В ILDasm дважды щелкните метку МАНИФЕСТа исполняемого файла, чтобы открыть окно MANIFEST . Ресурсы отображаются как элементы .mresource и перечисляются после ссылок на внешние сборки и настраиваемых атрибутов уровня сборки. Можно также скомпилировать следующую простую утилиту, которая перечисляет полные квалифицированные имена внедренных ресурсов в сборке, имя которой передается ей как параметр командной строки.

    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
    
  • Вы определяете набор ресурсов по имени файла ресурса (а также необязательному пространству имен) и его расширению файла, а не по его пространству имен и имени корневого файла. Например, это исключение возникает, если набор ресурсов нейтрального языка и региональных параметров называется GlobalResources , и вы предоставляете значение GlobalResources.resources (а не GlobalResources) параметру baseNameResourceManager.ResourceManager(String, Assembly) конструктора.

  • Набор ресурсов, определенный в вызове метода, не найден, и резервный набор ресурсов также не может быть загружен. Например, если вы создаете сателлитные сборки для английской (США) и русской культур, но не удается предоставить набор ресурсов для нейтральной культуры, будет выброшено исключение, если текущей культурой приложения является английская (Соединенное Королевство).

MissingManifestResourceException использует HRESULT COR_E_MISSINGMANIFESTRESOURCE, который имеет значение 0x80131532.

MissingManifestResourceException использует реализацию по умолчанию Equals , которая поддерживает равенство ссылок.

Список начальных значений свойств для экземпляра MissingManifestResourceExceptionсм. в конструкторах MissingManifestResourceException.

Note

Рекомендуем включить нейтральный набор ресурсов в основную сборку, чтобы приложение не завершилось ошибкой, если спутниковая сборка недоступна.

Конструкторы

Имя Описание
MissingManifestResourceException()

Инициализирует новый экземпляр MissingManifestResourceException класса со свойствами по умолчанию.

MissingManifestResourceException(SerializationInfo, StreamingContext)
Устаревшие.

Инициализирует новый экземпляр MissingManifestResourceException класса из сериализованных данных.

MissingManifestResourceException(String, Exception)

Инициализирует новый экземпляр MissingManifestResourceException класса с указанным сообщением об ошибке и ссылкой на внутреннее исключение, которое является причиной этого исключения.

MissingManifestResourceException(String)

Инициализирует новый экземпляр MissingManifestResourceException класса с указанным сообщением об ошибке.

Свойства

Имя Описание
Data

Возвращает коллекцию пар "ключ-значение", которые предоставляют дополнительные пользовательские сведения об исключении.

(Унаследовано от Exception)
HelpLink

Возвращает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT, закодированное числовое значение, назначенное определенному исключению.

(Унаследовано от Exception)
InnerException

Exception Возвращает экземпляр, вызвавшего текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывающего ошибку.

(Унаследовано от Exception)
StackTrace

Возвращает строковое представление непосредственных кадров в стеке вызовов.

(Унаследовано от Exception)
TargetSite

Возвращает метод, который вызывает текущее исключение.

(Унаследовано от Exception)

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает Exception первопричину одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие.

При переопределении в производном классе задает SerializationInfo с информацией об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

Имя Описание
SerializeObjectState
Устаревшие.

Происходит при сериализации исключения для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

См. также раздел