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

.NET Core+Angular应用发布后无法加载Microsoft.CognitiveServices.Speech.core.dll

解决Azure Cognitive Services Speech DLL加载失败问题

以下是针对你遇到的DllNotFoundException问题的具体排查和解决步骤:

  • 检查发布时的原生DLL部署情况
    Azure Cognitive Services Speech SDK的核心原生DLL(如Microsoft.CognitiveServices.Speech.core.dll)存放在NuGet包的runtimes子目录中,对应不同架构(比如runtimes/win-x64/native)。发布后要确认这些DLL是否被复制到了应用的输出目录——如果Any CPU模式下.NET未自动复制,就会导致加载失败。

  • 切换目标架构为x64
    两台机器都是64位架构,将项目目标平台从Any CPU改为x64:右键项目→属性→生成→目标平台选择x64,重新发布。Any CPU模式下应用可能以32位运行,导致和已安装的x64版VC++ Redist不匹配,或者加载错误架构的DLL。

  • 更新VC++ Redistributable版本
    当前安装的VC++ 2017 Redistributable(14.14.26405)版本过低,Azure Speech SDK 1.41.1需要更高版本的VC运行时(建议至少14.29及以上)。可以直接安装最新的VC 2022 Redistributable(向下兼容2017版本),覆盖现有安装。

  • 手动配置项目文件强制复制DLL
    打开项目的.csproj文件,添加以下配置段,确保构建和发布时自动复制64位原生DLL:

    <ItemGroup>
      <NativeReference Include="$(NuGetPackageRoot)microsoft.cognitiveservices.speech\1.41.1\runtimes\win-x64\native\*.dll">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </NativeReference>
    </ItemGroup>
    
  • 验证应用运行架构
    在目标机器上打开任务管理器,查看应用进程的平台属性(右键进程→详细信息→平台列)。如果显示32位,说明Any CPU模式下应用以32位运行,要么切换到x64目标架构,要么安装32位VC++ Redist并部署对应架构的Speech SDK DLL。

内容的提问来源于stack exchange,提问作者Bharathi Dasan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:25:07