Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.
Viene generata un'eccezione MissingManifestResourceException per diversi motivi in .NET rispetto alle app UWP.
Nelle app .NET viene MissingManifestResourceException generata quando il tentativo di recuperare una risorsa non riesce perché non è stato possibile caricare il set di risorse per le impostazioni cultura neutre da un determinato assembly. Anche se l'eccezione viene generata quando si tenta di recuperare una determinata risorsa, è causato dall'errore di caricare il set di risorse anziché dall'errore di trovare la risorsa.
Nota
Per altre informazioni, vedere la sezione "Gestione di un'eccezione MissingManifestResourceException" nell'argomento della ResourceManager classe.
Le cause principali dell'eccezione includono quanto segue:
Il set di risorse non è identificato dal nome completo. Ad esempio, se il baseName
parametro nella chiamata al ResourceManager.ResourceManager(String, Assembly) 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 nell'assembly ResourceManager.GetString , la chiamata al metodo genera questa 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 MissingManifestResourceExceptionoggetto , è possibile usare uno strumento di reflection, ad esempio il disassembler IL (Ildasm.exe) per determinare il nome completo della risorsa. In ILDasm fare doppio clic sull'etichetta MANIFEST dell'eseguibile per aprire la finestra MANIFEST. Le risorse vengono visualizzate come .mresource
elementi e vengono elencate dopo i riferimenti ad assembly esterni e gli attributi a livello di assembly personalizzati. È anche possibile compilare l'utilità semplice 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;
public class Example0
{
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 Example3
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 allo spazio dei nomi facoltativo) e all'estensione del file anziché in base allo spazio dei nomi e al nome del file radice. Ad esempio, questa eccezione viene generata se il set di risorse delle impostazioni cultura neutre è denominato GlobalResources
e si specifica un valore ( GlobalResources.resources
anziché GlobalResources
) al baseName
parametro del ResourceManager.ResourceManager(String, Assembly) costruttore.
Impossibile trovare il set di risorse specifico delle impostazioni cultura identificato in una chiamata al metodo e non è possibile caricare il set di risorse di fallback. Ad esempio, se crei assembly satellite per le impostazioni cultura inglese (Stati Uniti) e Russia (russo), ma non fornisci un set di risorse per le impostazioni cultura neutre, questa eccezione viene generata se le impostazioni cultura correnti dell'app sono inglese (Regno Unito).
MissingManifestResourceException usa HRESULT COR_E_MISSINGMANIFESTRESOURCE
, che ha il valore 0x80131532.
MissingManifestResourceException usa l'implementazione predefinita Equals , che supporta l'uguaglianza dei riferimenti.
Per un elenco di valori di proprietà iniziali per un'istanza di MissingManifestResourceException, vedere il MissingManifestResourceException costruttori.
Nota
Ti consigliamo di includere un set neutro di risorse nell'assembly principale, quindi l'app non avrà esito negativo se un assembly satellite non è disponibile.
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 risorse per le impostazioni cultura preferite, viene MissingManifestResourceException generata in una delle condizioni seguenti:
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Modulo
Progettare pagine XAML per .NET MAUI coerenti usando risorse condivise - Training
Informazioni su come usare risorse condivise statiche e dinamiche per compilare un'interfaccia utente .NET Multi-platform App UI (MAUI). e dimostrazione di come gli stili possano rendere l'interfaccia utente sia coerente che accessibile.