Я пытаюсь решить ту же проблему.Предложенное вами решение отлично работает, но есть один вопрос ... Случай с Win и net46 понятен.А теперь мне нужно добавить ссылку на сборку в проекте для netcoreapp для Win и для Linux.Проблема в том, что это РАЗЛИЧНАЯ сборка с ЖЕ именем.Те, что мой пакет выглядит следующим образом:
/lib/net461/myassembly1.dll (net461/Windows Compile and Runtime)
/runtimes/ubuntu/lib/netcoreapp2.0/myassembly2.dll (netcore/Ubuntu Runtime)
/runtimes/win/lib/netcoreapp2.0/myassembly1.dll (netcore/Win Runtime)
/ref/netcoreapp2.0/???
Обновление: На самом деле, myassembly1.dll и myassembly2.dll оба называются myassembly.dll.Но чтобы показать, что один собран для Windows, а второй для Linux, я оставлю здесь такое имя.
Самое интересное, что я попытался поместить любую сборку в папку ref, и этоработает как на Windows, так и на Linux.Эта версия работает на обеих системах
/lib/net461/myassembly1.dll
/runtimes/ubuntu/lib/netcoreapp2.0/myassembly2.dll
/runtimes/win/lib/netcoreapp2.0/myassembly1.dll
/ref/netcoreapp2.0/myassembly1.dll
И это тоже
/lib/net461/myassembly1.dll
/runtimes/ubuntu/lib/netcoreapp2.0/myassembly2.dll
/runtimes/win/lib/netcoreapp2.0/myassembly1.dll
/ref/netcoreapp2.0/myassembly2.dll
Но я думаю, что это неправильно, и я где-то был не прав.