C# 类型初始化异常

C# 类型初始化异常,c#,.net,opencv,constructor,emgucv,C#,.net,Opencv,Constructor,Emgucv,我创建了imageHolder类: public class ImageHolder : Image<Bgr, Byte> { private String imagePath; public ImageHolder(String path):base(path) { this.imagePath = path; } public String imgPathProperty

我创建了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; }
    }
}
在运行时,我得到以下异常:

Emgu.CV.CvInvoke的类型初始值设定项引发异常。

以下是解决方案资源管理器窗口:

知道我为什么会遇到这个异常吗?我该如何修复它

提前感谢您。

每当静态构造函数抛出异常时,就会抛出(您看到的异常),或者,当您试图访问静态构造函数引发异常的类时(其属性是包含实际引发的异常详细信息的属性),这就是您需要调查的异常

在本例中,从您的屏幕截图来看,问题似乎是无法找到DLL“opencv_core240.DLL”。这可能有很多原因

  • 找不到DLL
  • 找不到DLL的一个依赖项
  • DLL的图像格式不正确(32位而不是64位)

我建议您看看上面的建议是否对您有帮助。

我通过重新安装解决了这个问题。


检查这个字段对我起了作用。在项目下→ 性质→ 构建(主/启动项目)

似乎找不到opencv_core240.dll;这需要在同一个文件夹中吗?不完全是这个的副本(因为没有可接受的答案),但可能关于和答案的一些信息对您有用。要重申和扩展@zimdanen所说的内容,InnerException文本声明无法加载zimdanen提到的DLL。请参阅以获得解释。是的,这也解决了我的问题。原来我的项目需要的DLL只能在32位中运行!哦!
private ImageHolder originalImageHolder;
originalImageHolder = new ImageHolder(openFileDialog.FileName);