private static string GetVisualStugioRegistryKeyPath(VsNetVersion vsNetVersion) { StringBuilder registryKeyPathBuilder = new StringBuilder(100); FieldInfo fieldInfo = vsNetVersion.GetType().GetField(vsNetVersion.ToString()); DescriptionAttribute descriptionAttribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute; if (null == descriptionAttribute) { throw new InvalidOperationException(string.Format("The Description attribute is not applied to the VsNetVersion.{0} enumeration value.", vsNetVersion.ToString())); } registryKeyPathBuilder.AppendFormat(CultureInfo.InvariantCulture, @"SOFTWARE\Microsoft\VisualStudio\{0}", descriptionAttribute.Description); return(registryKeyPathBuilder.ToString()); }
private static string GetVisualStugioRegistryKeyPath(VsNetVersion vsNetVersion, bool expressEdition) { StringBuilder registryKeyPathBuilder = new StringBuilder(100); FieldInfo fieldInfo = vsNetVersion.GetType().GetField(vsNetVersion.ToString()); DescriptionAttribute descriptionAttribute = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute; if (null == descriptionAttribute) throw new InvalidOperationException(string.Format("The Description attribute is not applied to the VsNetVersion.{0} enumeration value.", vsNetVersion.ToString())); registryKeyPathBuilder.AppendFormat(CultureInfo.InvariantCulture, expressEdition? @"SOFTWARE\Microsoft\VCSExpress\{0}" : @"SOFTWARE\Microsoft\VisualStudio\{0}", descriptionAttribute.Description); return registryKeyPathBuilder.ToString(); }