我用C#为一个C++库制作了一个NetCore包装器。该库具有针对Windows,Linux和MacOS的专门版本。我们为此添加了一个C#包装器,该包装器也适用于所有这些OS。

根据我在MSDN docs中阅读的内容,可以添加多目标依赖项,但这在框架级别有效,而不是OS。因此,在所有情况下都是NetCore,这是行不通的。

本机二进制文件很大(大约20 MB),因此用所有本机二进制文件制作单个NuGet包会很麻烦。

最佳答案

在构建C#层之后,我最终使用Conan C++ package manager引入了本地.dll或.so。

要针对多个框架,只需在.csproj中使用TargetFrameworks(复数)即可。这适用于VS和VSCode。

要创建具有调用Conan的MSBUild目标的NuGet包,我遵循了these steps

10-08 12:54