news 2026/4/18 10:51:40

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 支持,或者寻找替代的库。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:20:39

Keil5使用教程:基于C语言的GPIO控制实战案例

从零开始玩转Keil5&#xff1a;用C语言点亮第一颗LED你有没有试过&#xff0c;在按下编译按钮的那一刻&#xff0c;心跳都跟着代码一起跳动&#xff1f;当那颗小小的LED终于按你的意志闪烁起来时——不是靠库函数“一键封装”&#xff0c;而是你亲手操控每一个寄存器、每一行代…

作者头像 李华
网站建设 2026/4/17 17:59:21

GPT-SoVITS训练过程可视化分析:损失函数变化图解

GPT-SoVITS训练过程可视化分析&#xff1a;损失函数变化图解 在语音合成技术飞速发展的今天&#xff0c;个性化声音克隆已不再是科研实验室里的遥远构想。只需一段几十秒的录音&#xff0c;普通人也能拥有自己的“数字声纹”。这一变革背后&#xff0c;GPT-SoVITS 正扮演着关键…

作者头像 李华
网站建设 2026/4/17 21:02:51

直播行业变革者:GPT-SoVITS实现虚拟主播实时变声

直播行业变革者&#xff1a;GPT-SoVITS实现虚拟主播实时变声 在一场深夜直播中&#xff0c;屏幕前的观众正热切互动&#xff1a;“主播今天声音有点不一样&#xff1f;” “是换了新配音吗&#xff1f;这英语说得也太自然了吧&#xff01;” 而事实上&#xff0c;这位“主播…

作者头像 李华
网站建设 2026/4/18 3:00:06

Promise 讲解

太好了&#xff0c;你这个问题问到 JS 异步的“命门”上了 &#x1f44d; 我不用 ruoyi、不用 axios、不用复杂概念&#xff0c;只用最最简单的例子&#xff0c;一步一步带你理解&#xff1a;什么是 return new Promise&#xff0c;以及为什么 getInfo() 要这样写一、先一句“人…

作者头像 李华
网站建设 2026/4/18 7:54:47

图解说明TouchGFX在STM32中的帧缓冲布局

深入理解TouchGFX在STM32中的帧缓冲布局&#xff1a;从原理到实战你有没有遇到过这样的问题——UI动画一动就卡顿&#xff0c;屏幕刷新时出现撕裂条纹&#xff0c;甚至刚画好的按钮瞬间“闪没”&#xff1f;如果你正在用STM32做图形界面开发&#xff0c;这些问题很可能不是代码…

作者头像 李华