Check GAC for an assembly

Jessy picture Jessy · Dec 19, 2009 · Viewed 27.1k times · Source

How to programmatically check GAC for an assembly?

Answer

jason picture jason · Dec 19, 2009

Without even trying to get complicated, you could just shell out to gacutil and capture the output. For example, gacutil /l Microsoft.Practices.Unity gives me:

Microsoft (R) .NET Global Assembly Cache Utility.  Version 3.5.30729.1
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:
  Microsoft.Practices.Unity, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31
bf3856ad364e35, processorArchitecture=MSIL

Number of items = 1

versus gacutil /l Some.Nonexistant.Assembly:

Microsoft (R) .NET Global Assembly Cache Utility.  Version 3.5.30729.1
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:

Number of items = 0

This is easy to implement and parse and isn't dependent on any third-party implementations.