Проекты

Dependency Analyzer

This plugin can show dependencies of all references in CLI assemblies & libraries. This plugin can help you determine how libraries are referenced between files. Also it can show you unreferenced members of shared libraries. For example if we have libraries with common code shared between many projects.

It can sow not only .NET references, but also Import & export modules of native PE files.

As a basis for drawing charts I took Microsoft Automatic Graph Layout component.

As a basis for reading contents of PE/CLI files I used PEReader component.

Also I've added feature to show referenced members in shared libraries. This feature is useful if many projects contains reference to shared libraries but what exactly public members are used inside dependent libraries is unknown. You can specify additional libraries to analyze (Open button inside UI) and feature to display all public members & highlight only used members.


Settings

  • RecursiveLevel 5 — How deep to analyze assembly references
  • SearchType AssemblyRef — What types of search to perform (Bit field)
    • AssemblyRef — Search assembly references
    • GAC — Search assembly references in Global Assembly Cache & shared folders
    • ModuleRef — Search unmanaged modules loaded by DllImportAttribute
    • NativeSystem — Search unmanaged modules in shared & system folders
    • UnreferencedInFolder — Search for unreferenced libraries & assemblies in current folder
  • LibraryColor LightYellow — Color to draw found references
  • LibraryNotFoundColor Red — Color to draw missed references
  • LibrarySystemColor Green — Color to draw reference to GAC or system library (GAC; SearchPath)

Other settings affect graph UI

Sample application visualization

This example shows web application assembly dependencies to one of my projects, including NuGet packages.

Displaying the dependencies of a large project with a large number of dependencies and with lost assemblies. This assemblies was disabled as a feature, but if this feature will be turned on, then there will be runtime exception.

Dependencies for Microsoft Visual Studio devenv.exe executable. This is example when main executable is referenced to shared library GDIPlus.dll and backward references from GDIPlus.dll to api-ms-win-core-localization-l1-2-0.dll & api-ms-win-core-synch-l1-2-0.dll

TODO

  1. Add assembly versioning (bindingRedirect)
  2. Add shared folders search for .NET Core assemblies
  3. Add unreferenced assemblies in current folder
  4. Add public members analyze to see what members are used in shared libraries
Теги:

Скачать

Ссылки

Родительские файлы