Пример #1
0
        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();
        }