Let's say that I have the following projects:
Project A
Project B - References Project A
Project C - References Project B
If I set <DisableTransitiveProjectReferences>true</DisableTransitiveProjectReferences>
in Project C's .csproj, Project C will not compile since Project A is not explicitly references by Project C. If I do not set this DisableTransitiveProjectReferences
flag, it will compile. It seems like when I disable transitive references I'm being very "strict" on my project.
I've seen a lot of posts online about how to disable transitive references but now many on why I should or should not.
When should I explicitly disable transitive references in a C# project? What are the tradeoffs (benefits and costs) I'm implicitly taking on in my project when I choose to keep transitive references?