Когда есть. NET Стандартный проект компилируется с netstandard.dll. Оба. NET Framework и. NET Core имеют netstandard.dll (который обеспечивает перенаправление типов в mscorlib.dll или System.Runtime.dll). Вот почему вы можете использовать. NET Стандартный проект как в. NET Core, так и. NET Framework.
Итак, что происходит, когда ваш. NET Standard ссылается на проект. NET Framework project (который скомпилирован с mscorlib.dll)?
Если у вас есть цепочка ссылок . NET Framework ->. NET Standard ->. NET Framework то нет проблема вообще, потому что во время выполнения у вас есть mscorlib.dll со всеми необходимыми типами.
А как насчет . NET Core ->. NET Standard ->. NET Framework Ссылки? Во время выполнения у вас есть только System.Runtime.dll. Нет проблем с. NET Стандартным проектом, потому что netstandard.dll будет вводить переадресацию в System.Runtime.dll. Но хитрость в том, что . NET Core также имеет mscorlib.dll ! И да, это также только пересылка типов в типы System.Runtime.dll. И все работает. ... если вы не будете использовать какой-либо. NET Тип фреймворка, которого нет в System.Runtime.dll.
Дополнительная литература:. NET Прокладка совместимости с фреймворком