此问题已在此处有答案:
unable to load cvextern in a c# project(11个回答)
13天前关闭。
我在我的c# winforms项目中使用.net framework 4.8。平台目标任意CPU
在管理NuGet包的项目中...我搜索了Emgu.CV,然后在项目中使用以下命令添加了两者:
using Emgu.CV;
using Emgu.CV.Structure;
然后在我从按钮调用事件调用的方法中:
private void Test(string videoPath)
{
// Load the video file
VideoCapture videoCapture = new VideoCapture(videoPath);
}
和/或
private void btnOpenVideo_Click(object sender, EventArgs e)
{
Test(@"C:\Users\something\Downloads\test.mp4");
}
我可以用任何播放器播放硬盘上的视频文件。
但是当点击按钮时,它会在行上抛出一个异常:VideoCapture videoCapture = new VideoCapture(videoPath);
System.TypeInitializationException: 'The type initializer for 'Emgu.CV.CvInvoke' threw an exception.'
和/或Inner Exception DllNotFoundException: Unable to load DLL 'cvextern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
不知道怎么修。我试着谷歌了一下,但到目前为止没有一个答案有效。
1条答案
按热度按时间sbtkgmzw1#
System.TypeInitializationException:“Emgu.CV.CvInvoke”的类型初始值设定项引发了异常。
安装Emgu CVCore库而不安装Emgu.Cv.runtime.windows库时,通常会抛出此异常。为了能够使用Emgu CV处理视频,您需要安装Runtime。
1.打开Nuget包管理器
1.单击Browse选项卡并搜索Emgu.cv.runtime.windows,然后将该依赖项安装到项目中
1.如果您的框架目标是4.8,请确保安装的运行时版本不大于4.4.x.x
安装运行时后,应解决异常,并成功调用测试函数。