web-dev-qa-db-ja.com

タイプ初期化例外

ImageHolderクラスを作成しました:

public class ImageHolder : Image<Bgr, Byte>
{   
    private String imagePath;

    public ImageHolder(String path):base(path)
    {
       this.imagePath = path;                     
    }   
    public String imgPathProperty
    {
        get
        { return imagePath; }
        set
        { imagePath = value; }
    }
}

次のように、クラスのインスタンスを作成して初期化します。

private ImageHolder originalImageHolder;
originalImageHolder = new ImageHolder(openFileDialog.FileName);

実行時に、次の例外が発生します。

'Emgu.CV.CvInvoke'の型初期化子が例外をスローしました。

enter image description here

ソリューションエクスプローラーウィンドウは次のとおりです。

enter image description here

なぜこの例外が発生するのか、どうすれば修正できますか?

前もって感謝します。

13
Michael

TypeInitializationException (表示されている例外)は、静的コンストラクターが例外をスローするたび、または静的コンストラクターが例外をスローしたクラスにアクセスしようとするたびにスローされます InnerException プロパティは、実際にスローされた例外の詳細を含むプロパティです。これは、調査する必要のある例外です。

この場合、スクリーンショットから、DLL "opencv_core240.dll"が見つからなかったことが問題のようです。これには、いくつかの理由が考えられます。

  • DLLが見つかりませんでした
  • DLLの依存関係の1つが見つかりませんでした
  • DLLの画像形式が正しくありませんでした(64ビットではなく32ビット)

この質問 を見て、そこにある提案のいずれかが役立つかどうかを確認することをお勧めします。

25
Justin

VS Project Properties Page

このフィールドをチェックすることは私にとってトリックでした。 プロジェクト→プロパティ→ビルド(メイン/スタートアッププロジェクト)の下

2
SAm

再インストールして問題を解決しました MSVCRT 9.0 SP1 x86

1
Michael