【发布时间】:2021-09-13 09:43:48
【问题描述】:
我正在尝试使用 Nuget 安装 EMGU。我正在使用框架 4.8。 WinForms。我可以安装 Emgu.CV,但是当我尝试安装 Emgu.CV.runtime.windows 时,我收到一条错误消息:
“无法安装包 'Emgu.runtime.windows.msvc.rt.x64 19.28.29336'。您正在尝试将此包安装到以 '.NETFramework,Version=v4.8' 为目标的项目中,但包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。
stackoverflow 上的一个解决方案 (Emgu error when trying to install emgu.CV.runtime.windows in VC# 2017) 说“该解决方案正在从 package.config 迁移到包引用”,但在我的情况下它不起作用。当我更改迁移时,我在安装 Emgu.CV 时也遇到了错误。错误是 “无法找到后备包文件夹 'C:\Microsoft\Xamarin\NuGet'。”
在这些之后,我尝试手动安装 Emgu.runtime 并复制 dll 文件,但我遇到了与 cvextern.dll 相关的问题。它说该文件不可访问。我尝试注册它 rgsvr32 它不起作用。所以手动工作也无济于事。
我应该如何安装 EMGU。
【问题讨论】:
-
卸载与 Emgu.cv 相关的所有内容。将平台目标设置为
AnyCPU。重建解决方案。关闭 Visual Studio。删除[Project]\obj中的所有内容。安装OpenCV 4.5.2 for Windows。打开 NuGet 包管理器,找到Emgu.cv 4.5.1和Emgu.cv.runtime.windows 4.5.1并使用PackageReference作为管理格式安装这两个包。检查 Visual Studio 的配置,确保默认Package Management设置为PackageReference并勾选Allow format selection on first package install。 -
查看是否将
Emgu.CV.Platform.NetFramework.dll和Emgu.CV.Platform.NetStandard.dll添加到解决方案的输出文件夹(Debug/Release)。所有其他程序集都存储在x86和x64文件夹中。 -- 现在,如果由于某种奇怪的原因出现问题,请构建一个新的解决方案并重新开始。 -
谢谢。当我选择 PackageReference 并尝试安装 Emgu.CV 时,我仍然收到错误消息。我收到此错误:无法找到后备包文件夹 'C:\Microsoft\Xamarin\NuGet\'。
-
Emgu.CV 有一个新版本,v. 4.5.2,它基于 OpenCV 4.5.2(您需要预先下载和安装)。请注意,Emgu.CV 使用 .Net Standard,只有一个简单的 .Net Framework 包装器。 -- 先安装 Emgu.CV 4.5.2,再安装 Emgu.CV.runtime.windows 4.5.2。还要添加 Emgu.CV.UI 包(最后一个)。安装后,您必须看到项目参考中的Packages 蓝色图标和
Emgu.CV.Platform.NetFramework的标准图标。 -- 在新的解决方案中执行此操作。定位 AnyCPU 并删除默认的Prefer 32-bit检查。 -
新版本不再在项目输出文件夹(调试/发布)中安装 x86 / x64 组件。 -- 看到您已经更新了 Visual Studio 安装并且 .Net Standard 可以正常工作。
标签: c# winforms runtime emgucv