You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2022中.NET Framework4.7.2项目无法安装指定Emgu CV NuGet包求助

问题解决:.NET Framework 4.7.2项目安装Emgu.CV CUDA相关NuGet包失败

问题描述

VS2022中目标框架为.NET Framework 4.7.2的C#项目,安装Emgu.Cv.Runtime.Cuda和Emgu.runtime.windows.cuda.dnn.cnn.infer包时失败,报错:

Could not install package 'Emgu.runtime.windows.cuda.blas 11.3.44'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.7.2'

同一电脑上新建同框架项目可正常安装上述包;另外Emgu.CV、Emgu.Bitmap、Emgu.UI能成功安装,但Emgu.CV.runtime.windows无法加载,导致无法运行Emgu相关代码。

解决方案

1. 确认项目为64位平台目标

Emgu.CV的CUDA相关包仅支持64位环境,旧项目可能默认设置为x86:

  • 右键项目 → 属性 → 生成选项卡
  • 将“平台目标”改为x64,取消勾选“首选32位”(若存在)
  • 保存设置后重新尝试安装包

2. 清理NuGet缓存并重新安装

缓存损坏可能导致包安装异常:

  • 打开VS的“工具” → “NuGet包管理器” → “管理解决方案的NuGet包”
  • 点击右上角设置图标 → 选择“清除所有NuGet缓存”
  • 卸载项目中已安装的所有Emgu.CV相关包,然后按顺序重新安装:先装Emgu.CV,再安装对应的runtime及CUDA包

3. 检查并修复项目文件(.csproj)配置

旧项目可能存在兼容性配置问题:

  • 右键项目 → 选择“编辑项目文件”
  • 确保存在以下配置:
    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
      <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    </PropertyGroup>
    
  • 删除项目文件中手动添加的与Emgu.CV相关的<Reference>节点(若有),避免和NuGet包冲突

4. 确保所有Emgu.CV包版本完全一致

不同版本的Emgu.CV包可能存在兼容性问题:

  • 在NuGet包管理器中,确保Emgu.CV、Emgu.CV.runtime.windows、Emgu.Cv.Runtime.Cuda等所有相关包的版本号完全相同
  • 若报错的Emgu.runtime.windows.cuda.blas 11.3.44版本不兼容.NET Framework 4.7.2,尝试切换到与当前Emgu.CV版本匹配的CUDA runtime包版本

5. 对比正常项目修复配置

将新建的可正常安装包的项目与旧项目对比:

  • 复制正常项目的<PropertyGroup>和<PackageReference>节点内容,替换旧项目中对应的部分
  • 保存后重新加载项目,再尝试安装包

内容的提问来源于stack exchange,提问作者Bilka Technology

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:23:21