コード例 #1
0
        /// <summary>
        /// Gets the version number as used by Visual Studio to identify it's version internally.
        /// <para></para>
        /// eg: Visual Studio 2010 is 10.0 and Visual Studio 2008 is 9.0
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>A string with the VS internal number version</returns>
        private static string GetVersionNumber(VSVersionInternal version)
        {
            if (IsSupportedVersion(version) == false)
            {
                throw new VSVersionNotSupportedException("Not a supported version of Visual Studio");
            }

            return(string.Format(CultureInfo.InvariantCulture, "{0:0.0}", (float)version / 10));
        }
コード例 #2
0
        /// <summary>
        /// Gets the version number as used by Visual Studio to identify it's version internally.
        /// <para></para>
        /// eg: Visual Studio 2010 is 10.0 and Visual Studio 2008 is 9.0
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>A string with the VS internal number version</returns>
        private static string GetVersionNumber(VSVersionInternal version)
        {
            if (IsSupportedVersion(version) == false)
            {
                throw new VSVersionNotSupportedException("Not a supported version of Visual Studio");
            }

            return string.Format(CultureInfo.InvariantCulture, "{0:0.0}", (float)version / 10);
        }
コード例 #3
0
        /// <summary>
        /// Predicate that indicates if we support getting the installation folder
        /// for it.
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>true if supported false otherwise</returns>
        internal static bool IsSupportedVersion(VSVersionInternal version)
        {
            if (version == VSVersionInternal.VSNet2002 ||
                version == VSVersionInternal.VSNet2003 ||
                version == VSVersionInternal.VS2005 ||
                version == VSVersionInternal.VS2008 ||
                version == VSVersionInternal.VS2010 ||
                version == VSVersionInternal.VS2012)
            {
                return(true);
            }

            return(false);
        }
コード例 #4
0
        /// <summary>
        /// Predicate that indicates if we support getting the installation folder
        /// for it.
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>true if supported false otherwise</returns>
        internal static bool IsSupportedVersion(VSVersionInternal version)
        {
            if (version == VSVersionInternal.VSNet2002 ||
                version == VSVersionInternal.VSNet2003 ||
                version == VSVersionInternal.VS2005 ||
                version == VSVersionInternal.VS2008 ||
                version == VSVersionInternal.VS2010 ||
                version == VSVersionInternal.VS2012 ||
                version == VSVersionInternal.VS2013)
            {
                return true;
            }

            return false;
        }
コード例 #5
0
        /// <summary>
        /// Gets the installation directory of a given Visual Studio Version
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>Null if not installed the installation directory otherwise</returns>
        internal static string GetVisualStudioInstallationDir(VSVersionInternal version)
        {
            string registryKeyString = string.Format(
                @"SOFTWARE{0}Microsoft\VisualStudio\{1}",
                Environment.Is64BitProcess ? @"\Wow6432Node\" : "\\",
                GetVersionNumber(version));

            using (var localMachineKey = Registry.LocalMachine.OpenSubKey(registryKeyString))
            {
                if (localMachineKey == null)
                {
                    return(null);
                }

                return(localMachineKey.GetValue("InstallDir") as string);
            }
        }
コード例 #6
0
        /// <summary>
        /// Gets the installation directory of a given Visual Studio Version
        /// </summary>
        /// <param name="version">Visual Studio Version</param>
        /// <returns>Null if not installed the installation directory otherwise</returns>
        internal static string GetVisualStudioInstallationDir(VSVersionInternal version)
        {
            string registryKeyString = string.Format(
                @"SOFTWARE{0}Microsoft\VisualStudio\{1}", 
                Environment.Is64BitProcess ? @"\Wow6432Node\" : "\\",
                GetVersionNumber(version));

            using (var localMachineKey = Registry.LocalMachine.OpenSubKey(registryKeyString))
            {
                if (localMachineKey == null)
                {
                    return null;
                }

                return localMachineKey.GetValue("InstallDir") as string;
            }
        }