我已经在我的项目中使用 NuGet 管理器安装了最新的 OpenCVSharp 2 (2.4.10.201...)。有关 OpenCVSharp.CvMat 的所有内容都工作正常(加载、操作等),因此我确信安装是正确的。
但是我根本无法使用 OpenCVSharp.CPlusPlus!问题是它不加载 OpenCvSharpExtern.dll。
try-catch 块显示错误:
try
{
Mat mat = new Mat();
} catch (Exception err)
{
Console.WriteLine( err );
}
System.TypeInitializationException: The type initializer for 'OpenCvSharp.CPlusPlus.Mat' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'OpenCvSharpExtern': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at OpenCvSharp.CPlusPlus.NativeMethods.core_Mat_sizeof()
at OpenCvSharp.CPlusPlus.Mat..cctor()
--- End of inner exception stack trace ---
at OpenCvSharp.CPlusPlus.Mat..ctor()
at MainClass.Main() in C:\Users\kotsias\Documents\Visual Studio 2015\Projects\MyCVSharp\ConsoleApplication1\Test.cs:line 14
Run Code Online (Sandbox Code Playgroud)
OpenCvSharpExtern.dll与我的 .exe 一起 部署在以下子文件夹中:
..\dll\x86
&
..\dll\x64
如果我手动将x64 .dll复制到 .exe 所在的文件夹中,我仍然会遇到上述相同的错误。如果我复制x86 .dll,则会收到不同的错误:
System.TypeInitializationException: The type initializer for 'OpenCvSharp.CPlusPlus.Mat' threw an exception. ---> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at OpenCvSharp.CPlusPlus.NativeMethods.core_Mat_sizeof()
at OpenCvSharp.CPlusPlus.Mat..cctor()
--- End of inner exception stack trace ---
at OpenCvSharp.CPlusPlus.Mat..ctor()
at MainClass.Main() in C:\Users\kotsias\Documents\Visual Studio 2015\Projects\MyCVSharp\ConsoleApplication1\Test.cs:line 14
Run Code Online (Sandbox Code Playgroud)
小智 24
仅安装“OpencvSharp{version} nuget”包是不够的。您还必须安装“OpencvSharp{version}.runtime.{operating_system}”软件包。
例如,在我的例子中,我必须安装以下 Nuget 包:
有些人可能遇到的另一个问题:
OpenCvSharpExtern.dll 需要 mfplat.dll,它是媒体功能包的一部分。默认情况下,Windows“N”版本不包含此功能。
可以从“应用程序和功能”->“可选功能”->“添加功能”进行安装。
小智 2
我在生产中遇到这个问题(创建安装文件并安装后)。我通过执行以下步骤解决了这个问题
| 归档时间: |
|
| 查看次数: |
19841 次 |
| 最近记录: |