Syntax Parsing

Jan 6, 2016 at 6:06 AM
DocPreview uses the custom simplistic code parsing algorithm. Below are the reasons for this.

The original (not published) DocPreview implementation had C# syntax parsing implemented with NRefactory so all members were resolved accurately. However... Xamarin has made a questionable decision to start distributing a non-NuGet release of the NRefactory assembly with the same version number but altered functionality. Thus using NRefactory form VS extensions is no longer safe as the runtime may substitute the required NRefactory assembly with the wrong one depending on presence of Xamrin plugins at runtime . Thus the decision has been made to implement a simple custom parsing.

Xamarin VS plugin is using ICSharpCode.NRefactory.dll of AssemblyFileVersion("5.5.1").
However NuGet ICSharpCode.NRefactory.dll assembly is AssemblyFileVersion("5.2.0").
And the both assemblies are built as "Assembly ICSharpCode.NRefactory, Version"

Despite being both marked as the same version the assemblies are clearly different (file size and functionality wise).

Xamarin should never ever distribute a conflicting assembly.