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

Visual Studio中.NET Core项目引用NuGet包时原生DLL找不到问题

解决原生DLL自动复制到正确输出目录的问题

针对你遇到的Leptonica DLL无法被运行时自动找到的问题,可通过以下几种自动化方案解决:

方法1:修改库项目的.csproj配置

直接在你的.NET Core库项目的.csproj文件中添加原生DLL的复制规则,确保NuGet包打包和项目引用时的路径正确:

<ItemGroup>
  <!-- 配置x64平台的Leptonica DLL -->
  <NativeFile Include="x64\leptonica-1.82.0.dll">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
  </NativeFile>
</ItemGroup>

配置后,生成的NuGet包会将DLL正确放入runtimes/win-x64/native目录,引用该包的项目构建时,.NET Core会自动将DLL复制到输出目录的x64子文件夹,无需手动操作。

方法2:添加MSBuild目标强制复制

如果上述配置未生效,可在库项目的.csproj中添加自定义构建目标,在构建完成后自动复制DLL到指定路径:

<Target Name="CopyLeptonicaDllToX64" AfterTargets="Build">
  <Copy SourceFiles="$(OutputPath)runtimes\win-x64\native\leptonica-1.82.0.dll"
        DestinationFolder="$(OutputPath)x64"
        Condition="'$(RuntimeIdentifier)' == 'win-x64'" />
</Target>

该目标会在每次构建后检查当前运行时标识为win-x64时,自动将DLL从runtimes目录复制到输出目录的x64文件夹。

方法3:自定义NuGet包的Targets文件(手动打包场景)

若你手动编写.nuspec文件打包,可通过添加Targets文件实现自动复制:

  1. 在.nuspec中添加文件映射:
<files>
  <file src="x64\leptonica-1.82.0.dll" target="runtimes\win-x64\native" />
  <file src="x64\leptonica-1.82.0.dll" target="build\win-x64" />
  <!-- 同时添加Targets文件 -->
  <file src="build\MyTesseractOCR.targets" target="build\win-x64" />
</files>
  1. 在build目录下创建MyTesseractOCR.targets文件,内容如下:
<Project>
  <Target Name="CopyLeptonicaToOutputX64" AfterTargets="Build">
    <Copy SourceFiles="$(MSBuildThisFileDirectory)leptonica-1.82.0.dll"
          DestinationFolder="$(OutputPath)x64"
          Condition="'$(RuntimeIdentifier)' == 'win-x64'" />
  </Target>
</Project>

NuGet包安装时会自动导入该Targets文件,在项目构建时执行复制操作。

额外注意事项

确保引用该NuGet包的控制台项目已指定正确的运行时标识,可在项目的.csproj中添加:

<PropertyGroup>
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

或在构建时通过命令行参数指定:dotnet build -r win-x64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 04:02:47