OpenCvSharp.Internal.NativeMethods“的类型初始值设定项引发异常

错误截图:

WPF项目 A界面按钮方法调用成员实例B里面这个初始化Mat对象方法
 

后台ViewModel代码类似:

AViewModel{

B b;

public void BtnClick(){

b.test();
}

}

 

报错:

看一眼根据经验确认是DLL的问题,于是乎把nuget包配置和程序集引用两部分尝试了很多次 ,"OpenCvSharpExtern.dll"也确实是有,很遗憾,一直没出现效果。

还衍生除了一系列疑问:

1.C#中 nuget和引用程序集路径哪一个优先问题:

我发现少某个包的话,可以从nuget搜索下载,或者本地有dll的话可以手动添加程序集引用,但是如果手动添加引用的程序集(dll)已经存在nuget包中的话,引用的那个dll的地址就会在C盘nuget包默认地址,而不是你添加引用的位置;

比如:

我添加OpenCvSharp引用的位置在D盘:

但是勾选后点击确认的话:

会出现黄色感叹号,搜索了一下大多说是版本对不上的问题,但是我发现可以按照下面步骤解决:

打开配置管理器 切换一下当前项目的平台属性为any cup,等待vs自动刷新后再切换回来64,关闭配置管理器后你会返现黄色感叹号消失了:

点击程序集还显示属性信息,可以发现位置根本不是我之前添加引用的位置,而是在C盘nuget文件夹下;

如果想让位置变回来,这个时候把nuget包里面OpenCvSharp移除掉就OK;

上面只是问题描述,并没有从根本上理解,希望路过的高工不吝赐教;

2.packages.config 与 包

packages.config:

包:

目前看来功能是一样的,但是不知道为什么显示不一样,我截图两个项目的框架都是一样的net48

-------------------------------------------------------------------------------------------------------------------------------

回到问题本身,尝试了很多方法,这里推荐两个链接,但是我不适用。

http://t.csdnimg.cn/OEq7A

http://t.csdnimg.cn/g8jRr

最终解决办法:

在A界面后端类构造函数里提前调用一下方法:

代码类似:

AViewModel{

B b;

public AViewModel(){

b.test();
}

public void BtnClick(){

b.test();
}

}

再运行点击按钮不会报错了,目前只算是找到规律,还是不知道根本原因在哪里,希望各位看官不吝赐教 ;

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
system.typeinitializationexception是一种.NET Framework中的异常类型,它表示在类型的静态构造函数中发生了错误。在这种情况下,错误发生在名为"opencvsharp.internal.nativemethods"的类型的静态构造函数中。 "opencvsharp.internal.nativemethods"是一个类,该类包含了与OpenCvSharp库相关的本机方法(Native Methods)。本机方法是指使用其他编程语言编写的代码,通常用于与底层操作系统和硬件进行交互。静态构造函数是在类型被首次使用之前调用的特殊方法,用于初始化静态字段和执行其他静态操作。 当系统加载程序集并尝试使用"opencvsharp.internal.nativemethods"类型时,它需要执行该类型的静态构造函数。如果静态构造函数中的代码引发异常,就会导致system.typeinitializationexception异常。 要解决这个问题,我们需要查看和修复"opencvsharp.internal.nativemethods"类型的静态构造函数中的错误。通常,这种错误可能是由于配置问题、缺少依赖、访问权限问题或与其他部分代码的冲突等原因造成的。 首先,我们可以检查是否正确安装了OpenCvSharp库,并确保库文件可正常访问。然后,我们可以检查是否缺少某些依赖,并确保它们被正确引用和加载。同时,我们还可以尝试升级或重新安装OpenCvSharp库,以确保使用的是最新版本的库文件。 如果问题仍然存在,我们可能需要进一步调查和分析静态构造函数中的代码,以找到导致异常的准确原因。这可能需要使用调试工具、日志记录和异常处理等技术来定位和修复问题。 总之,system.typeinitializationexception:"opencvsharp.internal.nativemethods"表示在"opencvsharp.internal.nativemethods"类型的静态构造函数中发生了错误。要解决这个问题,我们需要审查和修复静态构造函数中的错误,确保库文件和依赖正确安装和加载,并进行适当的调试和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值