簡體   English   中英

將非托管本機庫文件包含到 nuget 輸出目錄中

[英]Including an unmanaged native library files to nuget output directory

未管理的共享對象(.so 文件)不會復制到輸出目錄:

我有一個 .netstandard 2 項目,它包裝了一個 C++ 庫(讓我們稱這個項目為 wrap.csproj)。 該項目依賴於共享對象 (libgdal.so)。

我想將此項目用作 nuget,因此,將引用我的 nuget 的項目應該在 build/publish 文件夾中包含 wrap.dll 和 libgdal.so。

我將此項目打包為 nuget。 但是引用這個 nuget 的項目(dotnet 核心)沒有得到 libgdal.so 文件,只是 build/published 文件夾中的 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM