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:
- From the NDepend Project Properties panel the tool tip on the column Code to Analyze > ApplicationAssemblies > References tells me which assembly is really referenced.
- 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: