将非托管本机库文件包含到 nuget 输出目录
Including an unmanaged native library files to nuget output directory
未管理的共享对象(.so 文件)不会复制到输出目录:
我有一个包装了 C++ 库的 .netstandard 2 项目(我们称该项目为 wrap.csproj)。
该项目依赖于共享对象 (libgdal.so)。
我想将这个项目用作 nuget,因此,将引用我的 nuget 的项目应该在 build/publish 文件夹中有 wrap.dll 和 libgdal.so。
我将这个项目打包为 nuget。
但是引用此 nuget 的项目(dotnet 核心)不会仅在 build/published 文件夹中获取 libgdal.so 文件 wrap.dll,因此我收到 运行 时间错误。
我将此属性添加到 nuget csproj:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
编辑:从@zivkan 的帮助中稍微看了一下,我成功了
我需要做的就是像这样添加包路径:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<PackagePath>runtimes/linux-x64/native</packagePath>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
我需要做的就是像这样添加 PackagePath:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<PackagePath>runtimes/linux-x64/native</PackagePath>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
(我的运行时间是linux-x64)
未管理的共享对象(.so 文件)不会复制到输出目录:
我有一个包装了 C++ 库的 .netstandard 2 项目(我们称该项目为 wrap.csproj)。 该项目依赖于共享对象 (libgdal.so)。
我想将这个项目用作 nuget,因此,将引用我的 nuget 的项目应该在 build/publish 文件夹中有 wrap.dll 和 libgdal.so。
我将这个项目打包为 nuget。 但是引用此 nuget 的项目(dotnet 核心)不会仅在 build/published 文件夹中获取 libgdal.so 文件 wrap.dll,因此我收到 运行 时间错误。
我将此属性添加到 nuget csproj:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
编辑:从@zivkan 的帮助中稍微看了一下,我成功了
我需要做的就是像这样添加包路径:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<PackagePath>runtimes/linux-x64/native</packagePath>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
我需要做的就是像这样添加 PackagePath:
<ItemGroup>
<None Include="libgdal.so">
<Pack>true</Pack>
<PackagePath>runtimes/linux-x64/native</PackagePath>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
(我的运行时间是linux-x64)