static EditorHelper() { isJitDebuggerAvailable = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework", "DbgManagedDebugger", null) != null; RegistryKey localMachine = null; if (Environment.Is64BitOperatingSystem) { localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); } else { localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); } RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); string[] visualStudioSubKeys = visualStudio != null?visualStudio.GetSubKeyNames() : null; vsEdition = VisualStudioEdition.Express; // Doesn't work: //if (visualStudioSubKeys != null) //{ // if (visualStudioSubKeys.Contains("8.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("9.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("10.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("11.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("12.0")) vsEdition = VisualStudioEdition.Standard; //} // Doesn't work either: //RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); //if (visualStudio != null) //{ // // Determine highest installed visual studio version // RegistryKey visualStudioVersion = null; // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("11.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("10.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("9.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("8.0"); // // Determine edition // if (visualStudioVersion != null) // { // RegistryKey visualStudioSetup = visualStudioVersion.OpenSubKey("Setup"); // string[] subKeys = (visualStudioSetup != null) ? visualStudioSetup.GetSubKeyNames() : null; // if (subKeys != null) // { // // This won't work // if (subKeys.Any(k => k.Contains("Visual Studio Ultimate"))) vsEdition = VisualStudioEdition.Standard; // if (subKeys.Any(k => k.Contains("Visual Studio Professional"))) vsEdition = VisualStudioEdition.Standard; // } // } //} }
static EditorHelper() { isJitDebuggerAvailable = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework", "DbgManagedDebugger", null) != null; RegistryKey localMachine = null; if (Environment.Is64BitOperatingSystem) localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); else localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); string[] visualStudioSubKeys = visualStudio != null ? visualStudio.GetSubKeyNames() : null; vsEdition = VisualStudioEdition.Express; }
static EditorHelper() { isJitDebuggerAvailable = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework", "DbgManagedDebugger", null) != null; RegistryKey localMachine = null; if (Environment.Is64BitOperatingSystem) localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); else localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); string[] visualStudioSubKeys = visualStudio != null ? visualStudio.GetSubKeyNames() : null; vsEdition = VisualStudioEdition.Express; // Doesn't work: //if (visualStudioSubKeys != null) //{ // if (visualStudioSubKeys.Contains("8.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("9.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("10.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("11.0")) vsEdition = VisualStudioEdition.Standard; // if (visualStudioSubKeys.Contains("12.0")) vsEdition = VisualStudioEdition.Standard; //} // Doesn't work either: //RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); //if (visualStudio != null) //{ // // Determine highest installed visual studio version // RegistryKey visualStudioVersion = null; // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("11.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("10.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("9.0"); // if (visualStudioVersion == null) visualStudioVersion = visualStudio.OpenSubKey("8.0"); // // Determine edition // if (visualStudioVersion != null) // { // RegistryKey visualStudioSetup = visualStudioVersion.OpenSubKey("Setup"); // string[] subKeys = (visualStudioSetup != null) ? visualStudioSetup.GetSubKeyNames() : null; // if (subKeys != null) // { // // This won't work // if (subKeys.Any(k => k.Contains("Visual Studio Ultimate"))) vsEdition = VisualStudioEdition.Standard; // if (subKeys.Any(k => k.Contains("Visual Studio Professional"))) vsEdition = VisualStudioEdition.Standard; // } // } //} }
private static Instance GetFromVs2017Instance( MSBuildVersion version, MSBuildPlatform platform, VisualStudioEdition edition, SpecialFolders specialFolder) { var versionDirectoryName = version.ToString().TrimStart("VS"); var basePath = Path.Combine( EnvironmentInfo.SpecialFolder(specialFolder).NotNull(), $@"Microsoft Visual Studio\{versionDirectoryName}\{edition}\MSBuild\{GetVersionFolder(version)}\Bin"); return(new Instance( version, platform, platform == MSBuildPlatform.x64 ? Path.Combine(basePath, "amd64") : basePath)); }
static EditorHelper() { isJitDebuggerAvailable = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NetFramework", "DbgManagedDebugger", null) != null; RegistryKey localMachine = null; if (Environment.Is64BitOperatingSystem) { localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); } else { localMachine = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); } RegistryKey visualStudio = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\VisualStudio"); string[] visualStudioSubKeys = visualStudio != null?visualStudio.GetSubKeyNames() : null; vsEdition = VisualStudioEdition.Express; }
static string ToEditionString(this VisualStudioEdition edition) { return(Enum.GetName(typeof(VisualStudioEdition), edition)); }