/// <summary> /// Provides an enumerator over the set of sub-toolset names available to a particular /// toolsversion /// </summary> /// <param name="toolsVersion">The tools version.</param> /// <returns>An enumeration of the sub-toolsets that belong to that toolsversion.</returns> protected override IEnumerable <string> GetSubToolsetVersions(string toolsVersion) { RegistryKeyWrapper toolsVersionWrapper = null; try { try { toolsVersionWrapper = _msbuildRegistryWrapper.OpenSubKey("ToolsVersions\\" + toolsVersion); } catch (RegistryException ex) { InvalidToolsetDefinitionException.Throw(ex, "RegistryReadError", ex.Source, ex.Message); } return(toolsVersionWrapper.GetSubKeyNames()); } finally { if (toolsVersionWrapper != null) { toolsVersionWrapper.Dispose(); } } }
/// <summary> /// Provides an enumerator over property definitions for a specified tools version /// </summary> /// <param name="toolsVersion">The tools version</param> /// <returns>An enumeration of property definitions</returns> protected override IEnumerable <ToolsetPropertyDefinition> GetPropertyDefinitions(string toolsVersion) { RegistryKeyWrapper toolsVersionWrapper = null; try { try { toolsVersionWrapper = _msbuildRegistryWrapper.OpenSubKey("ToolsVersions\\" + toolsVersion); } catch (RegistryException ex) { InvalidToolsetDefinitionException.Throw(ex, "RegistryReadError", ex.Source, ex.Message); } foreach (string propertyName in toolsVersionWrapper.GetValueNames()) { yield return(CreatePropertyFromRegistry(toolsVersionWrapper, propertyName)); } } finally { if (toolsVersionWrapper != null) { toolsVersionWrapper.Dispose(); } } }