How can you find ArcGIS version programatically?

In ArcObjects .NET, use the RuntimeManager e.g.:

Listing all installed runtimes:

var runtimes = RuntimeManager.InstalledRuntimes;
foreach (RuntimeInfo runtime in runtimes)
{
  System.Diagnostics.Debug.Print(runtime.Path);
  System.Diagnostics.Debug.Print(runtime.Version);
  System.Diagnostics.Debug.Print(runtime.Product.ToString());
}

or, to just get the currently active runtime:

bool succeeded = ESRI.ArcGIS.RuntimeManager.Bind(ProductCode.EngineOrDesktop);
if (succeeded)
{
  RuntimeInfo activeRunTimeInfo = RuntimeManager.ActiveRuntime;
  System.Diagnostics.Debug.Print(activeRunTimeInfo.Product.ToString());
}

Also in arcpy, you can use GetInstallInfo.


On a Win7 64 bit PC this Registry Key may help. I have 10.0 installed, and it reads 10.0.2414.

\HKLM\software\wow6432Node\esri\Arcgis\RealVersion