private string GetExeToolPathFromSetupConfiguration(ILogger logger)
        {
            string toolPath = null;

            logger.LogDebug(Resources.CONV_DIAG_LocatingCodeCoverageToolSetupConfiguration);
            ISetupConfiguration configurationQuery = setupConfigurationFactory.GetSetupConfigurationQuery();

            if (configurationQuery != null)
            {
                IEnumSetupInstances instanceEnumerator = configurationQuery.EnumInstances();

                int fetched;
                ISetupInstance[] tempInstance = new ISetupInstance[1];

                List <ISetupInstance2> instances = new List <ISetupInstance2>();
                //Enumerate the configuration instances
                do
                {
                    instanceEnumerator.Next(1, tempInstance, out fetched);
                    if (fetched > 0)
                    {
                        ISetupInstance2 instance = (ISetupInstance2)tempInstance[0];
                        if (instance.GetPackages().Any(p => p.GetId() == CodeCoverageInstallationPackage))
                        {
                            //Store instances that have code coverage package installed
                            instances.Add((ISetupInstance2)tempInstance[0]);
                        }
                    }
                } while (fetched > 0);

                if (instances.Count > 1)
                {
                    logger.LogDebug(Resources.CONV_DIAG_MultipleVsVersionsInstalled, string.Join(", ", instances.Select(i => i.GetInstallationVersion())));
                }

                //Get the installation path for the latest visual studio found
                var visualStudioPath = instances.OrderByDescending(i => i.GetInstallationVersion())
                                       .Select(i => i.GetInstallationPath())
                                       .FirstOrDefault();

                if (visualStudioPath != null)
                {
                    toolPath = Path.Combine(visualStudioPath, TeamToolPathandExeName);
                }
            }
            else
            {
                logger.LogDebug(Resources.CONV_DIAG_SetupConfigurationNotSupported);
            }

            return(toolPath);
        }