This question is currently hypothetical, but has a real basis.
NuGet package A by vendor X depends on NuGet package B by vendor Y and System.Runtime by Microsoft.
We have found it necessary to branch B (it's open source) to B' to fix a bug in B that Y is unwilling to fix. Let us say we are several versions behind on B' (this would certainly be true eventually).
Project Q depends on A and B'.
How do I keep nuget from getting utterly confused. I have a script for building nuget cache directories, but it would make a lot more sense if we could just run nuget restore and get the right answer.
In theory we could say we can publish B' to nuget.org, but B is in the way so the upload won't take. There is no chance of convincing X to use our B' instead of Y's B and X is closed source so we can't recompile it.