OpenCvSharp 仅从所有 OpenCvDll 开始

OpenCvSharp only starts with all OpenCvDlls

我在 visual studio 2013 中使用 OpenCvSharp。我已经通过 Nuget 安装它并且工作正常。

但是当我部署应用程序时,它有一个 128M 的 DLL 目录。 x86 为 128M,64 为 128M。 我基本上使用 HighGui 和 Core 的功能。当我删除 DLL 时,OpenCvSharp 在加载时抛出异常。

我试过重新编译 OpenCvSharp 但没有成功(这是另一个问题),甚至重新编译 OpenCV 以获得更小的 DLL。

有没有什么方法可以只加载需要的 DLL 并指出可以删除哪个?

您的部署规模听起来很大... 当我使用 Nuget 包 OpenCvSharp-AnyCPU 2.4.10 创建测试项目时,我得到:

  • 1.22MB 用于 net40 程序集
  • x64 dll 32MB
  • 29MB 用于 x86 dll

OpenCvSharp 按需加载本机 dll(即当 C# 代码需要本机代码时),因此您可以 删除您的代码从不使用的 dll,但您必须检查来源或通过反复试验找出答案。

默认情况下,您的 C# 应用程序将构建目标 Any CPU,这意味着需要两组 dll,但您可以在构建属性中设置 Platform target: x86 而只是不部署 x64 dll。