Althought exists a strong reference to an object B, a WeakReference to B into A is not accessible in A finalizer as shown in the sample. The behavior is exactly like the WeakReference has already been garbage collected which is not the case.That is very restricitve in many cases and also prevent proper WeakEvent clean up without any artifacts (like timer, polling, enumeration, ...).That bug prevent the separation of different GC root tree classes (throught weak ref). Due this fact, it prevent proper clean up of weak referenced but dependend classes if required.You can see: http://stackoverflow.com/questions/15093762/c-sharp-loosing-weakreferenceSee: "Steps to reproduce" for clean code to easily reproduce the bug (into console app).
Visual Studio/Team Foundation Server/.NET Framework Tooling Version
Steps to reproduce
Operating System Language