I've set out to consistently reproduce the assembly version conflict in Newtonsoft.Json (related to my previous question Why is Newtonsoft.Json so prone to assembly version conflicts?) in order to better understand it, but I can't trigger it.
From the top answer there, it should happen if I have project A which references one version of Json.NET, then it references a project B which itself references a different version (and they don't have assembly redirects to handle the issue).
I've made a solution with a Class Library project and a Command Line project, both of which reference Newtonsoft.Json which I installed with Nuget Package Manager for both projects, and then I edited the Class Library packages.config to use an older version:
<package id="Newtonsoft.Json" version="6.0.1" targetFramework="net452" />
While the Command Line project references the most recent version:
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />
This does not trigger the problem, however, the project still builds successfully and executes (I just serialize a string and print it from both projects, and I call the DLL from the EXE to ensure it tries to load both versions of Newtonsoft.Json.
I've uploaded the test project at https://github.com/sashoalm/ReproduceNewtonsoftJsonBug if needed.
Why isn't the bug getting triggered?