Я сделал оболочку NetCore в C # для библиотеки C ++; эта библиотека имеет специализированные сборки для Windows, Linux и MacOS. Для этого мы добавили оболочку C #, которая также работает на всех этих ОС.
Из того, что я прочитал в Документы MSDN, Можно добавить многоцелевые зависимости, но это работает на уровне инфраструктуры, а не ОС. Так что это будет NetCore для всех случаев, и это не сработает.
Нативный двоичный файл довольно большой (около 20 МБ), поэтому было бы утомительно создавать один пакет NuGet со всеми нативными двоичными файлами … Любое предложение?
Я закончил тем, что использовал Конан C ++ менеджер пакетов ввести родной .dll или .so после создания слоя C #.
Чтобы нацелить несколько фреймворков, просто используйте TargetFrameworks (множественное число) в .csproj. Это работает как для VS, так и для VSCode.
Чтобы создать пакет NuGet с целями MSBUild, которые вызывают Conan, я следовал эти шаги.
Других решений пока нет …