/// <summary>
        /// Initializes a new instance of the <see cref="UpdateHostBuilder"/> class.
        /// </summary>
        /// <param name="environment">The environment.</param>
        /// <param name="settings">The settings.</param>
        /// <param name="version">The version.</param>
        /// <param name="withOverlapping">if set to <c>true</c> [with overlapping].</param>
        public UpdateHostBuilder(HostEnvironment environment, HostSettings settings, string version,
                                 bool withOverlapping = false)
        {
            Environment     = environment;
            Settings        = settings;
            WithOverlapping = withOverlapping;
            var currentService = GetLastWmiServiceInfo(settings.Name, $"{settings.Name}-{version}");

            var OldSettings = new WindowsHostSettings
            {
                Name = Convert.ToString(currentService["Name"].Value),
            };

            _stopOldHostBuilder             = new StopBuilder(Environment, OldSettings);
            _startOldHostBuilder            = new StartBuilder(_stopOldHostBuilder);
            _uninstallOldHostBuilder        = new UninstallBuilder(Environment, OldSettings);
            _installAndStartNewHostBuilder  = new InstallAndStartHostBuilder(Environment, Settings, version);
            _stopAndUninstallNewHostBuilder = new StopAndUninstallHostBuilder(Environment, Settings, version);
        }
Пример #2
0
        public InstallAndStartHostBuilder(HostEnvironment environment, HostSettings settings, string version)
        {
            Environment = environment;
            Settings    = new WindowsHostSettings
            {
                Name                = $"{settings.Name}-{version}",
                DisplayName         = $"{settings.DisplayName} ({version})",
                Description         = settings.Description,
                InstanceName        = settings.InstanceName,
                CanPauseAndContinue = settings.CanPauseAndContinue,
                CanSessionChanged   = settings.CanSessionChanged,
                CanShutdown         = settings.CanShutdown,
            };

            _installBuilder = new InstallBuilder(Environment, Settings);
            _installBuilder.Sudo();

            _startBuilder = new StartBuilder(_installBuilder);
        }