Rationalizing Assembly Reference


This morning I stumbled on an accidental usage of NDepend. It is accidental in the sense that we didn’t forecast this usage.

We recently added a new Visual Studio project to build an assembly named NDepend.Install.VisualStudioAddin.exe (which I hope is sufficiently well named to avoid the need to explain its role). As we are relying on the DevExpress DXperience for some of our UI stuff, I referenced all DevExpress assemblies available. I knew there were not all needed for compilation and NDepend gave me two ways to see which assemblies were actually required:

  1. From the NDepend Project Properties panel the tool tip on the column Code to Analyze > ApplicationAssemblies > References tells me which assembly is really referenced.
  2. By generating a CQL query asking which assemblies are directly used by the assembly NDepend.Install.VisualStudioAddin.exe.

As a consequence, the assemblies selected (in blue in the Solution Explorer panel) are not needed, and I pinpointed that the reference to System.Xml was not needed as well.


Finally, exporting the CQL query result as a dependency graph makes things clearer:


This entry was posted in CQL query, Dependency Graph, DevExpress, DXperience, requires assemblies. Bookmark the permalink. Follow any comments here with the RSS feed for this post.