

When referencing a lower version of Newtonsoft.Json than ships in Visual Studio, a binding redirect is in place to automatically change the reference to the later version at runtime. Learn more about Visual Studio versioning in the blog post Visual Studio extensions and version ranges demystified. In fact, make sure the entire dependency tree of your references doesn’t exceed that version. So, if your extension’s lowest supported Visual Studio version is 14.0, then you must reference Newtonsoft.Json version 6.0.x. Visual Studio 14.0 – Newtonsoft.Json 6.0.x.Visual Studio 15.0 – Newtonsoft.Json 8.0.3.Visual Studio 15.3 – Newtonsoft.Json 9.0.1.

Visual Studio 16.0 – Newtonsoft.Json 9.0.1.Visual Studio 16.2 – Newtonsoft.Json 12.0.2.The same is true for referencing Newtonsoft.Json, but it is less obvious to know what version shipped when. For instance, if the extension supports Visual Studio 14.0, 15.0, and 16.0, then it must reference the 14.0 SDK assemblies. Just like any other Visual Studio SDK assemblies, extensions must reference lowest version matching the lower bound of supported Visual Studio versions. I promise it’s not confusing once you know how, so let’s start at the beginning with versioning. And what if the extension supports older version of Visual Studio that doesn’t come with Newtonsoft.Json? It can, however, be confusing to know what version to reference and whether to ship the file itself with the extension or not. Today it is an integral part of Visual Studio and you can consider it a part of the SDK alongside other Visual Studio assemblies.Įxtensions can therefore also use the very same Newtonsoft.Json shipped with Visual Studio. Later updates to Visual Studio also updated its Newtonsoft.Json version when an internal feature needed it. Visual Studio 2015 (14.0) was the first version to ship with it. The ever popular Newtonsoft.Json NuGet package by James Newton-King is used throughout Visual Studio’s code base.
