public static void Main(string[] args) { try { if (args.Length > 0 && args[0] == "--selfElevate") { Logger.Debug("Preparing to start the pipe server..."); IConfigurationService configurationService = new LocalConfigurationService(); ISigningManager signingManager = new SigningManager(MsixHeroGistTimeStampFeed.CreateCached()); IAppAttachManager appAttachManager = new AppAttachManager(signingManager, configurationService); IAppxVolumeManager appxVolumeManager = new AppxVolumeManager(); IRegistryManager registryManager = new RegistryManager(); IAppxPackageManager appxPackageManager = new AppxPackageManager(); IAppxPackageQuery appxPackageQuery = new AppxPackageQuery(registryManager, configurationService); IAppxPackageInstaller appxPackageInstaller = new AppxPackageInstaller(); IAppxPackageRunner appxPackageRunner = new AppxPackageRunner(); IAppxLogManager appxLogManager = new AppxLogManager(); var receivers = new ISelfElevationProxyReceiver[] { new AppAttachManagerProxyReceiver(appAttachManager), new AppxPackageManagerProxyReceiver(appxPackageManager), new AppxPackageQueryProxyReceiver(appxPackageQuery), new AppxPackageInstallerProxyReceiver(appxPackageInstaller), new AppxPackageRunnerProxyReceiver(appxPackageRunner), new AppxLogManagerProxyReceiver(appxLogManager), new AppxVolumeManagerProxyReceiver(appxVolumeManager), new RegistryManagerProxyReceiver(registryManager), new SigningManagerProxyReceiver(signingManager) }; var server = new Server(receivers); server.Start().GetAwaiter().GetResult(); Console.ReadKey(); } else { Logger.Fatal("Unsupported command line arguments, terminating..."); Environment.ExitCode = 1; } } catch (AggregateException e) { Logger.Fatal(e.GetBaseException(), "Fatal exception, the program will be closed."); } catch (Exception e) { Logger.Fatal(e, "Fatal exception, the program will be closed."); } Logger.Info("Waiting for the user to press a key..."); Console.ReadKey(); }
private static async Task <int> Run(SignVerb arg) { var signingManager = new SigningManager(); var configurationService = new LocalConfigurationService(); var console = new ConsoleImpl(Console.Out, Console.Error); var executor = new SignVerbExecutor(arg, signingManager, configurationService, console); var exitCode = await executor.Execute().ConfigureAwait(false); Environment.ExitCode = exitCode; return(exitCode); }
static App() { var logLevel = MsixHeroLogLevel.Info; ExceptionGuard.Guard(() => { var service = new LocalConfigurationService(); var config = service.GetCurrentConfiguration(); logLevel = config.VerboseLogging ? MsixHeroLogLevel.Trace : MsixHeroLogLevel.Info; }); LogManager.Initialize(logLevel); }
static Program() { AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException; TaskScheduler.UnobservedTaskException += TaskSchedulerOnUnobservedTaskException; var logLevel = MsixHeroLogLevel.Info; ExceptionGuard.Guard(() => { var service = new LocalConfigurationService(); var config = service.GetCurrentConfiguration(); logLevel = config.VerboseLogging ? MsixHeroLogLevel.Trace : MsixHeroLogLevel.Info; }); LogManager.Initialize(logLevel); }
static async Task <int> Main(string[] args) { var logLevel = MsixHeroLogLevel.Trace; ExceptionGuard.Guard(() => { var service = new LocalConfigurationService(); var config = service.GetCurrentConfiguration(); logLevel = config.VerboseLogging ? MsixHeroLogLevel.Trace : MsixHeroLogLevel.Info; }); LogManager.Initialize(logLevel); var console = new ConsoleImpl(Console.Out, Console.Error); try { // First argument is the "edit" verb. // Second argument is the path of the package. if (args.Length > 1 && string.Equals(args[0], "edit", StringComparison.OrdinalIgnoreCase) && !args[1].StartsWith("-", StringComparison.OrdinalIgnoreCase)) { return(await DoEditVerb(args[1], args.Skip(2), console)); } return(await DoCommonVerbs(args, console)); } catch (Exception e) { await console.WriteError(e.Message).ConfigureAwait(false); Environment.ExitCode = 1; return(1); } }