MissingManifestResourceException Classe

Définition

Exception levée si l’assembly principal ne contient pas les ressources de la culture neutre et qu’un assembly satellite approprié est manquant.

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
Héritage
MissingManifestResourceException
Héritage
MissingManifestResourceException
Attributs

Remarques

Une exception MissingManifestResourceException est levée pour différentes raisons dans les applications .NET et UWP.

Applications .NET

Dans les applications .NET, l'exception MissingManifestResourceException est levée lorsque la tentative de récupération d’une ressource échoue, car la ressource définie pour la culture neutre n’a pas pu être chargée à partir d’un assembly particulier. Bien que l’exception soit levée lorsque vous essayez de récupérer une ressource particulière, elle est due à l’échec du chargement du jeu de ressources plutôt que de l’échec de la recherche de la ressource.

Note

Pour plus d'informations, consultez la section « Gestion de l'exception MissingManifestResourceException » dans le contexte de la classe ResourceManager.

Les principales causes de l’exception sont les suivantes :

  • L’ensemble de ressources n’est pas identifié par son nom complet. Par exemple, si le baseName paramètre de l’appel à la ResourceManager.ResourceManager(String, Assembly) méthode spécifie le nom racine du jeu de ressources sans espace de noms, mais que le jeu de ressources est affecté à un espace de noms lorsqu’il est stocké dans son assembly, l’appel à la ResourceManager.GetString méthode lève cette exception.

    Si vous avez intégré le fichier .resources contenant les ressources de la culture par défaut dans votre exécutable et que votre application génère une exception MissingManifestResourceException, vous pouvez utiliser un outil de réflexion tel que le Désassembleur IL (Ildasm.exe) pour déterminer le nom complet de la ressource. Dans ILDasm, double-cliquez sur l’étiquette MANIFEST de l’exécutable pour ouvrir la fenêtre MANIFEST . Les ressources apparaissent en tant qu'éléments .mresource et sont répertoriées après les références d'assemblage externe et les attributs personnalisés au niveau de l'assemblage. Vous pouvez également compiler l’utilitaire simple suivant, qui répertorie les noms complets des ressources incorporées dans l’assembly dont le nom est transmis en tant que paramètre de ligne de commande.

    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
    
  • Vous identifiez la ressource définie par son nom de fichier de ressource (ainsi que son espace de noms facultatif) et son extension de fichier plutôt que par son espace de noms et son nom de fichier racine seul. Par exemple, cette exception est levée si le jeu de ressources de la culture neutre est nommé GlobalResources et que vous fournissez une valeur ( GlobalResources.resources au lieu de GlobalResources) au baseName paramètre du ResourceManager.ResourceManager(String, Assembly) constructeur.

  • Le jeu de ressources spécifique à la culture identifié dans un appel de méthode est introuvable et le jeu de ressources de secours ne peut pas être chargé. Par exemple, si vous créez des assemblys satellites pour les cultures Anglais (États-Unis) et Russe (Russe), mais que vous ne parvenez pas à fournir un ensemble de ressources pour la culture neutre, cette exception est levée si la culture actuelle de votre application est l’Anglais (Royaume-Uni).

MissingManifestResourceException utilise HRESULT COR_E_MISSINGMANIFESTRESOURCE, qui a la valeur 0x80131532.

MissingManifestResourceException utilise l’implémentation par défaut Equals , qui prend en charge l’égalité des références.

Pour obtenir la liste des valeurs de propriété initiales d’une instance de MissingManifestResourceException, consultez les MissingManifestResourceException constructeurs.

Note

Nous vous recommandons d’inclure un ensemble neutre de ressources dans votre assembly principal, afin que votre application ne échoue pas si un assembly satellite n’est pas disponible.

Constructeurs

Nom Description
MissingManifestResourceException()

Initialise une nouvelle instance de la MissingManifestResourceException classe avec des propriétés par défaut.

MissingManifestResourceException(SerializationInfo, StreamingContext)
Obsolète.

Initialise une nouvelle instance de la MissingManifestResourceException classe à partir de données sérialisées.

MissingManifestResourceException(String, Exception)

Initialise une nouvelle instance de la MissingManifestResourceException classe avec un message d’erreur spécifié et une référence à l’exception interne qui est la cause de cette exception.

MissingManifestResourceException(String)

Initialise une nouvelle instance de la MissingManifestResourceException classe avec le message d’erreur spécifié.

Propriétés

Nom Description
Data

Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur sur l’exception.

(Hérité de Exception)
HelpLink

Obtient ou définit un lien vers le fichier d’aide associé à cette exception.

(Hérité de Exception)
HResult

Obtient ou définit HRESULT, valeur numérique codée affectée à une exception spécifique.

(Hérité de Exception)
InnerException

Obtient l’instance Exception qui a provoqué l’exception actuelle.

(Hérité de Exception)
Message

Obtient un message qui décrit l’exception actuelle.

(Hérité de Exception)
Source

Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur.

(Hérité de Exception)
StackTrace

Obtient une représentation sous forme de chaîne des images immédiates sur la pile des appels.

(Hérité de Exception)
TargetSite

Obtient la méthode qui lève l’exception actuelle.

(Hérité de Exception)

Méthodes

Nom Description
Equals(Object)

Détermine si l’objet spécifié est égal à l’objet actuel.

(Hérité de Object)
GetBaseException()

En cas de substitution dans une classe dérivée, retourne la Exception cause racine d’une ou plusieurs exceptions ultérieures.

(Hérité de Exception)
GetHashCode()

Sert de fonction de hachage par défaut.

(Hérité de Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsolète.

En cas de substitution dans une classe dérivée, définit l'SerializationInfo avec des informations sur l’exception.

(Hérité de Exception)
GetType()

Obtient le type d’exécution de l’instance actuelle.

(Hérité de Exception)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Crée et retourne une représentation sous forme de chaîne de l’exception actuelle.

(Hérité de Exception)

Événements

Nom Description
SerializeObjectState
Obsolète.

Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception.

(Hérité de Exception)

S’applique à

Voir aussi