当前位置: 首页 > news >正文

runtimes\win-AnyCPU\native\DlibDotNetNativeDnnAgeClassification.dll”,原因是找不到该文件

目录

方案一:添加 ARM64 运行时(推荐)

方案二:指定目标平台为 x64

方案三:禁用 FaceRecognitionDotNet 的自动部署(临时方案)

方案四:手动添加缺失的 DLL

方案五:条件编译(针对不同架构)

方案六:检查并清理 NuGet 包缓存

快速解决方案

根本原因分析


这个错误是因为FaceRecognitionDotNet包缺少 ARM64 架构的支持文件。这个问题通常出现在你在 ARM64 架构的设备(如 Apple Silicon Mac 或 Windows ARM 设备)上编译项目。

以下是几种解决方案:

方案一:添加 ARM64 运行时(推荐)

在项目文件中添加 ARM64 运行时的回退配置:

xml

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- 其他配置 --> <RuntimeIdentifiers>win-x64;win-x86;win-arm64</RuntimeIdentifiers> </PropertyGroup> <ItemGroup> <!-- 为 ARM64 添加回退 --> <RuntimeHostConfigurationOption Include="System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture" Value="X64" Condition="'$(RuntimeIdentifier)' == 'win-arm64'" /> </ItemGroup> </Project>

方案二:指定目标平台为 x64

在项目文件中显式指定目标平台:

xml

<PropertyGroup> <PlatformTarget>x64</PlatformTarget> <!-- 或者 --> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>

或者在 Visual Studio 中:

  1. 右键点击项目 → 属性

  2. 选择“生成”选项卡

  3. 将“平台目标”设置为x64

方案三:禁用 FaceRecognitionDotNet 的自动部署(临时方案)

xml

<PropertyGroup> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> <!-- 禁用特定包的自动复制 --> <ExcludeAssets>runtime</ExcludeAssets> </PropertyGroup> <ItemGroup> <PackageReference Include="FaceRecognitionDotNet" Version="1.3.0.7"> <ExcludeAssets>runtime</ExcludeAssets> </PackageReference> </ItemGroup>

方案四:手动添加缺失的 DLL

如果项目需要支持 ARM64,你可以手动处理:

  1. 下载或编译 ARM64 版本的 DLL

  2. 创建目录结构:

    text

    YourProject/ ├── runtimes/ │ ├── win-arm64/ │ │ └── native/ │ │ └── DlibDotNetNativeDnnAgeClassification.dll │ └── win-x64/ │ └── native/ │ └── (原有的 x64 DLL)
  3. 在项目文件中确保包含这些文件:

xml

<ItemGroup> <Content Include="runtimes\**\*.*"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup>

方案五:条件编译(针对不同架构)

xml

<PropertyGroup> <TargetFrameworks>net6.0;net6.0-windows</TargetFrameworks> <Platforms>AnyCPU;x64;ARM64</Platforms> </PropertyGroup> <PropertyGroup Condition="'$(Platform)' == 'ARM64'"> <!-- 对于 ARM64 平台,使用 x64 的运行时 --> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>

方案六:检查并清理 NuGet 包缓存

有时 NuGet 包缓存可能损坏:

  1. 清理 NuGet 缓存:

    powershell

    # 清除所有 NuGet 缓存 dotnet nuget locals all --clear
  2. 删除binobj文件夹

  3. 重新生成项目

快速解决方案

如果你只是想在当前设备上运行,最快速的方法是:

  1. 在 Visual Studio 中

    • 点击顶部菜单:生成 → 配置管理器

    • 将“活动解决方案平台”改为x64

    • 如果没有x64,点击“新建”创建

  2. 或者修改项目文件

xml

<PropertyGroup> <PlatformTarget>x64</PlatformTarget> </PropertyGroup>

根本原因分析

这个错误是因为FaceRecognitionDotNet包(版本 1.3.0.7)不包含 ARM64 架构的原生 DLL 文件。该包只提供了win-x86win-x64的运行时。

建议:如果项目需要支持 ARM64,考虑联系FaceRecognitionDotNet包的维护者,请求添加 ARM64 支持,或者寻找替代的库。

http://www.jsqmd.com/news/136177/

相关文章:

  • GPT-SoVITS语音训练避坑指南:新手常见错误汇总
  • GPT-SoVITS语音训练硬件配置推荐清单
  • GPT-SoVITS训练数据清洗工具推荐与使用
  • 号码被标记成骚扰电话怎么清除?
  • GPT-SoVITS能否实现语音疲劳度模拟?科研用途
  • 基于 AgentScope 框架:多智能体协作案例实战详解(非常详细),建议收藏!
  • 快速理解JLink驱动安装在工控行业的关键作用
  • SPI通信仿真中Proteus示波器的使用方法
  • 学工一体化平台采购避坑指南:避免功能堆砌,实现价值匹配
  • 多智能体协作实战进阶:基于LangGraph框架,收藏这一篇就够了!
  • GPT-SoVITS训练过程可视化分析:损失函数变化图解
  • 零基础入门:KeilC51与MDK并行安装图文说明
  • GPT-SoVITS能否实现多人混合语音合成?技术挑战解析
  • 数字滤波器频率响应曲线图解说明
  • 成功案例|华恒智信助力国有房地产集团实现战略绩效管理与数字化升级
  • 基于STM32的UART协议时序图解说明
  • Keil5使用教程:基于C语言的GPIO控制实战案例
  • GPT-SoVITS语音克隆可用于宠物语音玩具开发?
  • GPT-SoVITS语音合成与唇形同步技术结合应用
  • 手把手带您完成Proteus安装与初步设置
  • python高校毕业生与学位资格审核系统_zpl96_pycharm django vue flask
  • GPT-SoVITS语音合成稳定性测试:连续运行72小时无故障
  • ARM异常处理机制入门:中断向量表详解
  • 利用ST-Link进行实时变量监控的实践方法
  • GPT-SoVITS语音合成在自动广播系统中的部署
  • GPT-SoVITS能否用于生成播客节目语音内容?
  • 2025年实蝇引诱剂无公害除虫推荐榜单:实蝇引诱剂无公害除虫
  • 用GPT-SoVITS打造会说话的数字人形象
  • GPT-SoVITS能否用于歌曲合成?音乐创作新尝试
  • 语音克隆合规吗?GPT-SoVITS应用场景法律边界探讨