예제 #1
0
 private static void AddServices(IWixToolsetCoreServiceProvider coreProvider)
 {
     // Singletons.
     coreProvider.AddService((provider, singletons) => AddSingleton <IInternalBurnBackendHelper>(singletons, new BurnBackendHelper(provider)));
     coreProvider.AddService((provider, singletons) => AddSingleton <IPayloadHarvester>(singletons, new PayloadHarvester()));
     coreProvider.AddService((provider, singletons) => AddSingleton <IBurnBackendHelper>(singletons, provider.GetService <IInternalBurnBackendHelper>()));
 }
예제 #2
0
        /// <summary>
        /// Emulates calling wix.exe with standard backends.
        /// </summary>
        /// <param name="args"></param>
        /// <param name="coreProvider"></param>
        /// <param name="messages"></param>
        /// <param name="warningsAsErrors"></param>
        /// <returns></returns>
        public static Task <int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List <Message> messages, bool warningsAsErrors = true)
        {
            coreProvider.AddBundleBackend();

            var listener = new TestMessageListener();

            messages = listener.Messages;

            var messaging = coreProvider.GetService <IMessaging>();

            messaging.SetListener(listener);

            if (warningsAsErrors)
            {
                messaging.WarningsAsError = true;
            }

            var arguments = coreProvider.GetService <ICommandLineArguments>();

            arguments.Populate(args);

            var commandLine = HeatCommandLineFactory.CreateCommandLine(coreProvider);
            var command     = commandLine.ParseStandardCommandLine(arguments);

            return(command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1));
        }
예제 #3
0
        /// <summary>
        /// Emulates calling wix.exe with standard backends.
        /// </summary>
        /// <param name="args"></param>
        /// <param name="coreProvider"></param>
        /// <param name="messages"></param>
        /// <param name="warningsAsErrors"></param>
        /// <returns></returns>
        public static Task <int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List <Message> messages, bool warningsAsErrors = true)
        {
            coreProvider.AddWindowsInstallerBackend()
            .AddBundleBackend();

            var listener = new TestMessageListener();

            messages = listener.Messages;

            var messaging = coreProvider.GetService <IMessaging>();

            messaging.SetListener(listener);

            var arguments = new List <string>(args);

            if (warningsAsErrors)
            {
                arguments.Add("-wx");
            }

            var commandLine = coreProvider.GetService <ICommandLine>();
            var command     = commandLine.CreateCommand(arguments.ToArray());

            return(command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1));
        }
        /// <summary>
        /// Adds Converters services.
        /// </summary>
        /// <param name="coreProvider"></param>
        /// <returns></returns>
        public static IWixToolsetCoreServiceProvider AddConverter(this IWixToolsetCoreServiceProvider coreProvider)
        {
            var extensionManager = coreProvider.GetService <IExtensionManager>();

            extensionManager.Add(typeof(ConverterExtensionFactory).Assembly);

            return(coreProvider);
        }
        private static ExtensionCacheManager CreateExtensionCacheManager(IWixToolsetCoreServiceProvider coreProvider, Dictionary <Type, object> singletons)
        {
            var extensionCacheManager = new ExtensionCacheManager();

            singletons.Add(typeof(ExtensionCacheManager), extensionCacheManager);

            return(extensionCacheManager);
        }
        /// <summary>
        /// Adds ExtensionCache services.
        /// </summary>
        /// <param name="coreProvider"></param>
        /// <returns></returns>
        public static IWixToolsetCoreServiceProvider AddExtensionCacheManager(this IWixToolsetCoreServiceProvider coreProvider)
        {
            var extensionManager = coreProvider.GetService <IExtensionManager>();

            extensionManager.Add(typeof(ExtensionCacheManagerExtensionFactory).Assembly);

            coreProvider.AddService(CreateExtensionCacheManager);
            return(coreProvider);
        }
예제 #7
0
        public static IWixToolsetCoreServiceProvider AddBundleBackend(this IWixToolsetCoreServiceProvider coreProvider)
        {
            AddServices(coreProvider);

            var extensionManager = coreProvider.GetService <IExtensionManager>();

            extensionManager.Add(typeof(BurnExtensionFactory).Assembly);

            return(coreProvider);
        }
예제 #8
0
        protected override Task <int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken)
        {
            coreProvider.AddWindowsInstallerBackend()
            .AddBundleBackend();

            var commandLine = coreProvider.GetService <ICommandLine>();
            var command     = commandLine.CreateCommand(commandLineString);

            return(command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1));
        }
 public ExampleExtensionFactory(IWixToolsetCoreServiceProvider serviceProvider)
 {
     this.ServiceProvider = serviceProvider;
 }
 public ExtensionManager(IWixToolsetCoreServiceProvider serviceProvider)
 {
     this.ServiceProvider = serviceProvider;
 }
 private static void AddServices(IWixToolsetCoreServiceProvider coreProvider)
 {
     // Singletons.
     coreProvider.AddService((provider, singletons) => AddSingleton <IWindowsInstallerBackendHelper>(singletons, new WindowsInstallerBackendHelper()));
     coreProvider.AddService <IUnbinder>((provider, singletons) => new Unbinder(provider));
 }
예제 #12
0
 protected abstract Task <int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken);
예제 #13
0
 protected sealed override Task <int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException();