繁体   English   中英

如何制作具有系统依赖性的 nuget package?

[英]How to make a nuget package that have a system dependency?

我想开发一个 C# 绑定到大多数 Linux 发行版(即libnauty-dev )上可用的 package。 类似于: https://github.com/zajer/onauty

在 OCaml 中,我可以创建一个虚拟 OPAM package,它只检查所需的系统 package 是否安装在系统上,如果是,则安装此 OPAM ZEFE90A8E604A7C840E88D03A6D87F6。 此外,OPAM 包始终与源代码 afaik 一起分发,因此将 c 存根与实际 OCaml 代码捆绑在一起没有问题。

以下是我的问题:

  1. 如何将 an.so 文件与我的 nuget package 捆绑在一起?
  2. 如何检查系统上是否有必要的系统package?

编辑1:为了澄清一点,我需要一个问题的答案,因为如果我可以分发带有an.so库的nuget package,那么这就是我所需要的。 但是,如果无法使用 nuget 分发 an.so 文件,那么我需要在安装时构建它。 为此,我需要检查系统上是否提供所需的 package。

是的,您可以在 NuGet package 中包含任意文件。 Fe将libnauty-dev.so添加到.csproj所在的文件夹,并将这个添加到.csproj中,告诉它把二进制文件复制到output目录下并打包:

<ItemGroup>
  <None Include="libnauty-dev.so" Pack="true" PackagePath=".\">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <PackageCopyToOutput>true</PackageCopyToOutput>
  </None>
</ItemGroup>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM