Транзитивные ссылки ProjectReference
Реализации "протекают" в библиотеки.
Транзитивные ссылки ProjectReference
Утечка using
Не забыть добавить картинок
Иногда несмотря на то, что зависимая библиотека подключена только к абстракциям, в нее могут “протекать” реализации из сборок которые напрямую не подключены (транзит)
В принципе если работать только через интерфейсы большой проблемы нет, но иногда надо запретить такое поведение
DisableTransitiveProjectReferences
Это свойство отключает все транзитивные ProjectReference для зависимого проекта,
т.е. сборки подключенные только к интерфейсам, ничего кроме этих интерфейсов видеть не будут.\
1
2
3
4
5
6
7
<Project>
<!-- .... -->
<PropertyGroup>
<DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
</PropertyGroup>
<!-- .... -->
</Project>
PrivateAssets
отключает в верхней сборке передачу реализаций “вниз”
гарантированно сборки напрямую не подключенные к Infrastructure.csproj реализации внутри нее не увидят.
1
2
3
4
5
6
7
<Project>
<!-- .... -->
<ProjectReference Include="..\Infrastructure\Infrastructure.csproj">
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
<!-- .... -->
</Project>
Авторский пост защищен лицензией CC BY 4.0 .