A simple command line tool to view assembly references.
Install from Chocolatey package:
C:\> choco install asmspy
Or download AsmSpy as a .zip here. The .zip file contains AsmSpy.exe.
How it works
Simply run AsmSpy giving it a path to your bin directory (the folder where your project's assemblies live).
It will output a list of all conflicting assembly references. That is where different assemblies in your bin folder reference different versions of the same assembly.
|all||List all assemblies and references.
Supported formats: -a, --all
|nonsystem||Ignore system assemblies.
Supported formats: -n, --nonsystem
|noconsole||Do not show reference output on console.
Supported formats: -nc, --noconsole
|silent||Do not show any output, only warnings and errors will be shown.
Supported formats: -s, --silent
|dgml||Export dependency graph to a dgml file.
Supported formats: -dg <filename>
|dgml version||Show the assembly version on the label.
Supported formats: -dgsv, --dgshowversion
|dot||Export dependency graph to a DOT file.
Supported formats: -dt <filename>
|xml||Export dependency graph to a xml file.
Supported formats: -x <filename>
|rsw||Will only analyze assemblies if their referenced assemblies starts with the given value.
Supported formats: -rsw <string>, --referencedstartswith <string>
|e||Will exclude assemblies if they start with the given value. This option can be provided multiple times.
Supported formats: -e <string>, --exclude <string>
|tree||Write a dependency tree to the console.
Supported formats: -tr --tree
|i||Include subdirectories in search.
Supported formats: -i, --includesub
|c||Use the binding redirects of the given configuration file (Web.config or App.config)
Supported formats: -c <string>, --configurationFile <string>
|f||Whether to exit with an error code when AsmSpy detected Assemblies which could not be found
Supported formats. -f, --failOnMissing
To see a list of all assemblies and all references, just add the 'all' flag:
AsmSpy D:\Source\sutekishop\Suteki.Shop\Suteki.Shop\bin --all
To check only a single assembly provide a path to the file:
To ignore system assemblies, add the 'nonsystem' flag.
The output looks something like this:
Reference: System.Runtime.Serialization 18.104.22.168 by Microsoft.ServiceModel.Samples.XmlRpc 22.214.171.124 by Microsoft.Web.Mvc 126.96.36.199 by Suteki.Shop Reference: System.Web.Mvc 188.8.131.52 by Microsoft.Web.Mvc 184.108.40.206 by MvcContrib 220.127.116.11 by MvcContrib.FluentHtml 18.104.22.168 by Suteki.Common 22.214.171.124 by Suteki.Common 126.96.36.199 by Suteki.Shop 188.8.131.52 by Suteki.Shop Reference: System.ServiceModel.Web 184.108.40.206 by Microsoft.Web.Mvc Reference: System.Web.Abstractions 220.127.116.11 by Microsoft.Web.Mvc
You can see that System.Web.Mvc is referenced by 7 assemblies in my bin folder. Some reference version 18.104.22.168 and some version 22.214.171.124. I can now resolve any conflicts.
Color coding is used to more easily distinguish any problems.
- Green - referenced assembly found locally, in the specified directory
- Yellow - referenced assembly not found locally, but found installed in the Global Assembly Cache
- Red - referenced assembly missing