Инкапсуляция ссылок в .NET Core, похоже, изменилась таким образом, что позволяет ссылкам в одном проекте «сливаться» в другой проект.
В предыдущих версиях .NET сборки, на которые ссылается проект "X", не были доступны другим проектам в решении, которое ссылалось на проект "X".
Так, например, если у вас был Домен проект, который ссылается на Entity Framework , добавление ссылки на этот Домен проект в другой проект в вашем решении не предоставит этому другому проекту доступ к каким-либо классам Entity Framework,
Это было хорошо (по крайней мере, на мой взгляд).
Сегодня вечером поигрался с приложением .NET Core 2.1 и создал проект домена, который использовал EF Core.
Затем я создал проект модульного тестирования (в нетерпеливом ожидании использования нового поставщика EF Core InMemory) и сослался на свой проект домена.
Что меня полностью застало врасплох, так это то, что проект модульного тестирования смогполучить доступ к классам EF Core, хотя я не включил пакет EF Core NuGet в проект модульного тестирования;Мое единственное предположение состоит в том, что он мог получить доступ к EF через мой доменный проект, а именно:
![Example of the reference bleed](https://i.stack.imgur.com/GP3qt.png)
Это представляется крайне нежелательным;Меня не слишком волнуют ссылки на ссылки в моих модульных тестах, но меня очень волнует такая ссылка на ссылки при работе с другими проектами в моем решении (такими как ASP.NET Core Web project).
Есть ли способ скрыть / скрыть эти ссылки на пакеты в моем проекте Domain от других проектов, которые ссылаются на него?