Здравствуйте, Ночной Смотрящий, Вы писали:
НС>1) Из плюсового репа libgit2 они сабмодулем тянут исходники.
НС>2) Батником собирают эти исходники под разные таргеты
НС>3) Делают из этого nupkg, где сборки под разный рантайм разложены по папочкам
НС>4) Референсят этот nupkg уже в managed проекте (libgit2sharp), а там есть специальные таски для формирования таргетов (https://github.com/libgit2/libgit2sharp/tree/master/Targets).
В указанной папочке про нативные DLL ничего нету — ну, кроме динамического добавления в исходники проекта файла NativeDllName.g.cs c таким кодом:
namespace LibGit2Sharp.Core
{
internal static class NativeDllName
{
public const string Name = "$(libgit2_filename)"; // надо полагать, что libgit2_filename генерируется какой-то магией заранее.
}
}
НС>>>Все что есть имелось в виду под все таргеты, а не писать условия когда что копировать.
S>>Простите, я не понимаю эту фразу. Что такое "под все таргеты"?
НС>Это значит что в твоем nupkg должна быть папочка runtime в котором сложены dll/so под все поддерживаемые платформы, а выбор нужной либы будет делать рантам дотнета уже после запуска приложения.
У меня пока что нету nupkg
А когда будет, то dll/so в него не войдут — они используются только в рамках тестов и бенчмарков.
Поэтому всё это очень интересно, но я по-прежнему не понимаю, как решить мою проблему.