System.Resources.MissingManifestResourceException sınıfı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
MissingManifestResourceException.NET ve UWP uygulamalarında farklı nedenlerle bir özel durum oluşturulur.
.NET uygulamaları
.NET uygulamalarında, MissingManifestResourceException nötr kültür için kaynak kümesi belirli bir derlemeden yüklenemediğinden kaynak alma girişimi başarısız olduğunda oluşturulur. Özel durum, belirli bir kaynağı almaya çalıştığınızda ortaya çıkar, ancak kaynağın bulunamaması yerine kaynak kümesinin yüklenememesinden kaynaklanır.
Not
Ek bilgi için sınıf konusunun "MissingManifestResourceException Özel Durumunu İşleme" bölümüne ResourceManager bakın.
Özel durumun ana nedenleri şunlardır:
Kaynak kümesi tam adıyla tanımlanmaz. Örneğin, yöntemine ResourceManager.ResourceManager(String, Assembly) yapılan çağrıdaki parametre kaynak kümesinin kök adını ad alanı olmadan belirtiyorsa
baseName
, ancak derlemesinde depolandığında kaynak kümesine bir ad alanı atanmışsa, yöntemine ResourceManager.GetString yapılan çağrı bu özel durumu oluşturur.Varsayılan kültürün kaynaklarını içeren .resources dosyasını yürütülebilir dosyanıza eklediyseniz ve uygulamanız bir MissingManifestResourceExceptionkullanıyorsa, kaynağın tam adını belirlemek için IL Ayrıştırıcısı (Ildasm.exe) gibi bir yansıma aracı kullanabilirsiniz. ILDasm'da, MANIFEST penceresini açmak için yürütülebilir dosyanın MANIFEST etiketine çift tıklayın. Kaynaklar öğe olarak
.mresource
görünür ve dış derleme başvuruları ve özel derleme düzeyi özniteliklerden sonra listelenir. Ayrıca, adı komut satırı parametresi olarak geçirilen derlemedeki katıştırılmış kaynakların tam adlarını listeleyen aşağıdaki basit yardımcı programı derleyebilirsiniz.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
Kaynak kümesini yalnızca ad alanı ve kök dosya adı yerine kaynak dosya adıyla (isteğe bağlı ad alanıyla birlikte) ve dosya uzantısıyla tanımlarsınız. Örneğin, nötr kültürün kaynak kümesi adlandırılmışsa
GlobalResources
ve oluşturucunun parametresinebaseName
ResourceManager.ResourceManager(String, Assembly) (yerineGlobalResources
) değeriniGlobalResources.resources
sağlarsanız bu özel durum oluşturulur.Yöntem çağrısında tanımlanan kültüre özgü kaynak kümesi bulunamıyor ve geri dönüş kaynak kümesi yüklenemiyor. Örneğin, İngilizce (Birleşik Devletler) ve Rusya (Rusça) kültürleri için uydu derlemeleri oluşturur ancak nötr kültür için bir kaynak kümesi sağlamazsanız, uygulamanızın geçerli kültürü İngilizce (Birleşik Krallık) ise bu özel durum oluşturulur.
MissingManifestResourceException , 0x80131532 değerine sahip HRESULT COR_E_MISSINGMANIFESTRESOURCE
kullanır.
MissingManifestResourceException başvuru eşitliğini destekleyen varsayılan Equals uygulamayı kullanır.
örneğinin ilk özellik değerlerinin MissingManifestResourceExceptionlistesi için oluşturuculara MissingManifestResourceException bakın.
Not
Bir uydu derlemesi kullanılamıyorsa uygulamanızın başarısız olması için ana derlemenize nötr bir kaynak kümesi eklemenizi öneririz.
Evrensel Windows Platformu (UWP) uygulamaları
UWP uygulamaları, bağımsız kültür de dahil olmak üzere birden çok kültür için kaynakları tek bir paket kaynak dizini (.pri) dosyasına dağıtır. Sonuç olarak, bir UWP uygulamasında tercih edilen kültüre yönelik kaynaklar bulunamazsa, MissingManifestResourceException aşağıdaki koşullardan biri altında oluşturulur:
- Uygulama bir .pri dosyası içermiyor veya .pri dosyası açılamadı.
- Uygulamanın .pri dosyası, belirtilen kök ad için bir kaynak kümesi içermiyor.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin