MissingManifestResourceException クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メイン アセンブリにニュートラル カルチャのリソースが含まれず、適切なサテライト アセンブリがない場合にスローされる例外。
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 例外は、.NET アプリと UWP アプリのさまざまな理由でスローされます。
.NET アプリ
.NET アプリでは、ニュートラル カルチャのリソース セットを特定のアセンブリから読み込めなかったためにリソースの取得が失敗すると、MissingManifestResourceException がスローされます。 特定のリソースを取得しようとすると例外がスローされますが、これはリソースを見つけられないためではなく、リソースセットを読み込めないことに起因します。
Note
詳細については、 ResourceManager クラストピックの「MissingManifestResourceException 例外の処理」セクションを参照してください。
例外の主な原因は次のとおりです。
リソース セットは、その完全修飾名で識別されません。 たとえば、
baseNameメソッドの呼び出しのResourceManager.ResourceManager(String, Assembly) パラメーターが、名前空間を持たないリソース セットのルート名を指定しているが、そのアセンブリに格納されるときにリソース セットに名前空間が割り当てられている場合、ResourceManager.GetString メソッドの呼び出しによってこの例外がスローされます。既定のカルチャのリソースを含む .resources ファイルを実行可能ファイルに埋め込み、アプリが MissingManifestResourceExceptionをスローしている場合は、 IL 逆アセンブラー (Ildasm.exe) などのリフレクション ツールを使用して、リソースの完全修飾名を決定できます。 ILDasm で、実行可能ファイルの MANIFEST ラベルをダブルクリックして 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パラメーターに (baseNameではなく) ResourceManager.ResourceManager(String, Assembly)の値を指定すると、この例外がスローされます。メソッド呼び出しで識別されるカルチャ固有のリソース セットが見つからないので、フォールバック リソース セットを読み込めません。 たとえば、英語 (米国) とロシア (ロシア) のカルチャ用にサテライト アセンブリを作成しても、ニュートラル カルチャのリソース セットを指定できない場合、アプリの現在のカルチャが英語 (英国) の場合、この例外がスローされます。
MissingManifestResourceException は、値が0x80131532を持つ HRESULT COR_E_MISSINGMANIFESTRESOURCEを使用します。
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() |
派生クラスでオーバーライドされた場合、1 つ以上の後続の例外の根本原因である Exception を返します。 (継承元 Exception) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
古い.
派生クラスでオーバーライドされた場合は、例外に関する情報を使用して SerializationInfo を設定します。 (継承元 Exception) |
| GetType() |
現在のインスタンスのランタイム型を取得します。 (継承元 Exception) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在の例外の文字列形式を作成して返します。 (継承元 Exception) |
イベント
| 名前 | 説明 |
|---|---|
| SerializeObjectState |
古い.
例外に関するシリアル化されたデータを含む例外状態オブジェクトを作成するために例外がシリアル化されるときに発生します。 (継承元 Exception) |