MissingManifestResourceException Classe

Definizione

Eccezione generata se l'assembly principale non contiene le risorse per le impostazioni cultura di sistema e non è presente un assembly satellite appropriato.

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
Ereditarietà
MissingManifestResourceException
Ereditarietà
MissingManifestResourceException
Attributi

Commenti

App .NET

Nelle app .NET Framework e .NET Core, viene generata quando il tentativo di recuperare una risorsa ha esito negativo perché il set di risorse per le impostazioni cultura non indipendenti non può essere caricato MissingManifestResourceException da un assembly specifico. Anche se l'eccezione viene generata quando si tenta di recuperare una determinata risorsa, è causata dall'errore di caricamento del set di risorse anziché dall'errore di individuazione della risorsa.

Nota

Per altre informazioni, vedere la sezione "Gestione di un'eccezione MissingManifestResourceException" ResourceManager nell'argomento della classe .

Le cause principali dell'eccezione sono le seguenti:

  • Il set di risorse non è identificato dal nome completo. Ad esempio, se il parametro nella chiamata al metodo specifica il nome radice del set di risorse senza uno spazio dei nomi, ma al set di risorse viene assegnato uno spazio dei nomi quando viene archiviato nel relativo assembly, la chiamata al metodo genera questa baseName ResourceManager.ResourceManager(String, Assembly) ResourceManager.GetString eccezione.

    Se è stato incorporato il file con estensione resources che contiene le risorse delle impostazioni cultura predefinite nel file eseguibile e l'app genera un ' , è possibile usare uno strumento di reflection, ad esempio MissingManifestResourceException il disassembler IL (Ildasm.exe) per determinare il nome completo della risorsa. In ILDasm fare doppio clic sull'etichetta MANIFEST del file eseguibile per aprire la finestra MANIFESTO. Le risorse vengono visualizzate .mresource come elementi e vengono elencate dopo riferimenti ad assembly esterni e attributi personalizzati a livello di assembly. È anche possibile compilare la semplice utilità seguente, che elenca i nomi completi delle risorse incorporate nell'assembly il cui nome viene passato come parametro della riga di comando.

    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
    
  • È possibile identificare il set di risorse in base al nome del file di risorse (insieme al relativo spazio dei nomi facoltativo) e all'estensione del file anziché dal nome dello spazio dei nomi e del file radice. Ad esempio, questa eccezione viene generata se il set di risorse delle impostazioni cultura neutre è denominato e si specifica un valore (anziché ) al parametro GlobalResources GlobalResources.resources del GlobalResources baseName ResourceManager.ResourceManager(String, Assembly) costruttore.

  • Impossibile trovare il set di risorse specifico delle impostazioni cultura identificato in una chiamata al metodo e il set di risorse di fallback non può essere caricato. Ad esempio, se si creano assembly satellite per le impostazioni cultura inglese (Stati Uniti) e Russia (russo), ma non si riesce a fornire un set di risorse per le impostazioni cultura neutre, questa eccezione viene generata se le impostazioni cultura correnti dell'app sono inglese (Gran Bretagna).

MissingManifestResourceException usa il valore HRESULT COR_E_MISSINGMANIFESTRESOURCE, che ha il valore 0x80131532.

MissingManifestResourceException usa l'implementazione Equals predefinita, che supporta l'uguaglianza dei riferimenti.

Per un elenco di valori di proprietà iniziali per un'istanza di MissingManifestResourceException, vedere il MissingManifestResourceException costruttori.

Nota

È consigliabile includere un set neutro di risorse nell'assembly principale, in modo che l'app non avrà esito negativo se un assembly satellite non è disponibile.

App UWP (Universal Windows Platform)

Le app UWP distribuiscono risorse per più impostazioni cultura, incluse le impostazioni cultura neutre, in un singolo file di indice delle risorse del pacchetto (con estensione pri). Di conseguenza, in un'app UWP, se non è possibile trovare le risorse per le impostazioni cultura preferite, viene generata l'eccezione in una MissingManifestResourceException delle condizioni seguenti:

  • L'app non include un file con estensione pri o non è stato possibile aprire il file con estensione pri.

  • Il file pri dell'app non contiene un set di risorse per il nome radice specificato.

Costruttori

MissingManifestResourceException()

Inizializza una nuova istanza della classe MissingManifestResourceException con le proprietà predefinite.

MissingManifestResourceException(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della classe MissingManifestResourceException dai dati serializzati.

MissingManifestResourceException(String)

Inizializza una nuova istanza della classe MissingManifestResourceException con il messaggio di errore specificato.

MissingManifestResourceException(String, Exception)

Inizializza una nuova istanza della classe MissingManifestResourceException con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione corrente.

Proprietà

Data

Ottiene una raccolta di coppie chiave/valore che forniscono informazioni definite dall'utente aggiuntive sull'eccezione.

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.

(Ereditato da Exception)
HResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato a un'eccezione specifica.

(Ereditato da Exception)
InnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.

(Ereditato da Exception)
Message

Ottiene un messaggio che descrive l'eccezione corrente.

(Ereditato da Exception)
Source

Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei frame immediati nello stack di chiamate.

(Ereditato da Exception)
TargetSite

Ottiene il metodo che genera l'eccezione corrente.

(Ereditato da Exception)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetBaseException()

Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive.

(Ereditato da Exception)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Quando ne viene eseguito l'override in una classe derivata, imposta il controllo SerializationInfo con le informazioni sull'eccezione.

(Ereditato da Exception)
GetType()

Ottiene il tipo di runtime dell'istanza corrente.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.

(Ereditato da Exception)

Eventi

SerializeObjectState
Obsoleta.

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.

(Ereditato da Exception)

Si applica a

Vedi anche