What is this tool?
Simply put, it is a reporting tool to compare the GAC's of two of more machines.
When developing .Net applications you will sometime have to deploy your assemblies (that needs to be GAC'ed) to multiple machines. Inevitability, you will run into the situation where the assemblies of the two machines will get out of sync. Trying to manually
figure out what and where the differences are could be a real headache - ask anyone that has tried!
I created this tool a few years ago to solve this exact problem and I'm still using it regularly.
It is important to note that this tool does NOT make any changes to the GAC. It only reports the differences allowing you to make the decision what and how to change it.
What does it look like?
The main application looks like this:
A sample report:
How does it work?
The tool does not use any fancy API or magic to retrieve information from the GAC's of remote machines. It basically does a file/directory scan which means you need administrative rights on the machines you are comparing (but then you would need admin rights
anyway to get to the GAC).
It then compares the information gathered by checking various properties of the assemblies - like name, version, culture, file size etc.
Added in version 3.1 the tool can 'export' or make a copy of the GAC's for selected assemblies. Each machine's assemblies are saved to a separate directory. This can be used to create a 'small' backup - note however that is does not copy any additional files
that may be stored in that machine's GAC.
Version 3.2 adds support for .Net 4. assemblies
Version 3.2.1 change the application to reference .Net 4 framework.
Version 3.4 fix/hide path too long errors.
The previous version (version 2) is still available as it can still be used to compare only two machines. The new version (3) supports comparing multiple machines and exporting the results to an HTML report.
It might seem obvious but you must be an Administrator on the machines that you connect to for this tool to work.