private static Assembly LoadImplementationAssembly(VsVersion version) { var format = "Microsoft.VisualStudio.ExtensionManager.Implementation, Version={0}.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; var strongName = string.Format(format, VsVersionUtil.GetVersionNumber(version)); return(Assembly.Load(strongName)); }
private static Assembly LoadSettingsAssembly(VsVersion version) { var format = "Microsoft.VisualStudio.Settings{0}, Version={1}.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; string suffix = ""; switch (version) { case VsVersion.Vs2010: suffix = ""; break; case VsVersion.Vs2012: suffix = ".11.0"; break; case VsVersion.Vs2013: suffix = ".12.0"; break; case VsVersion.Vs2015: suffix = ".14.0"; break; case VsVersion.Vs2017: suffix = ".15.0"; break; default: throw new Exception("Bad Version"); } var strongName = string.Format(format, suffix, VsVersionUtil.GetVersionNumber(version)); return(Assembly.Load(strongName)); }
public static IEnumerable <InstalledVersion> GetLegacyInstalledVersions() { foreach (var vsVersion in LegacyVersions) { var majorVersion = VsVersionUtil.GetVersionNumber(vsVersion); var appPath = GetApplicationPathFromRegistry(majorVersion); if (appPath != null && File.Exists(appPath)) { yield return(new InstalledVersion(appPath, vsVersion)); } } }
public static IEnumerable <InstalledVersion> GetSetupInstanceInstalledVersions() { foreach (var setupInstance in GetSetupInstances()) { var productPath = setupInstance.GetProductPath(); var appPath = setupInstance.ResolvePath(productPath); var installationVersion = setupInstance.GetInstallationVersion(); var version = new Version(installationVersion); var vsVersion = VsVersionUtil.GetVsVersion(version); var product = setupInstance.GetProduct().GetId().Split('.').Last(); yield return(new InstalledVersion(appPath, vsVersion, product)); } }
public static CommandLine ParseCommandLine(IConsoleContext consoleContext, params string[] args) { if (args.Length == 0) { return(CommandLine.Help); } var toolAction = ToolAction.Help; VsVersion?version = null; string product = null; var rootSuffix = ""; var defaultDomain = false; var arg = ""; int index = 0; while (index < args.Length) { switch (args[index].ToLower()) { case "/i": case "/install": if (index + 1 >= args.Length) { consoleContext.Write("/install requires an argument"); return(CommandLine.Help); } toolAction = ToolAction.Install; arg = args[index + 1]; index += 2; break; case "/u": case "/uninstall": if (index + 1 >= args.Length) { consoleContext.Write("/uninstall requires an argument"); return(CommandLine.Help); } toolAction = ToolAction.Uninstall; arg = args[index + 1]; index += 2; break; case "/v": case "/version": if (index + 1 >= args.Length) { consoleContext.Write("/version requires an argument"); return(CommandLine.Help); } version = VsVersionUtil.ToVsVersion(args[index + 1]); index += 2; break; case "/p": case "/product": if (index + 1 >= args.Length) { consoleContext.Write("/product requires an argument"); return(CommandLine.Help); } product = args[index + 1]; index += 2; break; case "/r": case "/rootsuffix": if (index + 1 >= args.Length) { consoleContext.Write("/rootSuffix requires an argument"); return(CommandLine.Help); } rootSuffix = args[index + 1]; index += 2; break; case "/defaultdomain": defaultDomain = true; index++; break; case "/l": case "/list": toolAction = ToolAction.List; if (index + 1 < args.Length) { arg = args[index + 1]; } index = args.Length; break; case "/help": toolAction = ToolAction.Help; index = args.Length; break; default: arg = args[index]; if (!arg.StartsWith("/") && args.Length == 1) { // Default to Install if there's a single argument. toolAction = ToolAction.Install; index += 1; break; } consoleContext.WriteLine("{0} is not a valid argument", arg); return(CommandLine.Help); } } return(new CommandLine(toolAction, version, product, rootSuffix, arg, defaultDomain: defaultDomain)); }
internal static string GetAssemblyVersionNumber(VsVersion version) { return(string.Format("{0}.0.0.0", VsVersionUtil.GetVersionNumber(version))); }