fix(installer): move service start out of RegisterServiceStep
This commit is contained in:
@@ -110,14 +110,16 @@ public partial class App : Application
|
|||||||
sc.AddSingleton<IInstallStep, WriteConfigStep>();
|
sc.AddSingleton<IInstallStep, WriteConfigStep>();
|
||||||
sc.AddSingleton<IInstallStep, InitDatabaseStep>();
|
sc.AddSingleton<IInstallStep, InitDatabaseStep>();
|
||||||
sc.AddSingleton<IInstallStep, RegisterServiceStep>();
|
sc.AddSingleton<IInstallStep, RegisterServiceStep>();
|
||||||
|
sc.AddSingleton<IInstallStep>(sp => sp.GetRequiredService<StartServiceStep>());
|
||||||
sc.AddSingleton<IInstallStep, CreateShortcutsStep>();
|
sc.AddSingleton<IInstallStep, CreateShortcutsStep>();
|
||||||
sc.AddSingleton<IInstallStep, WriteUninstallRegistryStep>();
|
sc.AddSingleton<IInstallStep, WriteUninstallRegistryStep>();
|
||||||
sc.AddSingleton<WriteInstallManifestStep>();
|
sc.AddSingleton<WriteInstallManifestStep>();
|
||||||
sc.AddSingleton<IInstallStep>(sp => sp.GetRequiredService<WriteInstallManifestStep>());
|
sc.AddSingleton<IInstallStep>(sp => sp.GetRequiredService<WriteInstallManifestStep>());
|
||||||
|
|
||||||
// Stop/Start — NOT registered as IInstallStep (not part of default FreshInstall pipeline).
|
// Stop — NOT registered as IInstallStep (not part of default FreshInstall pipeline).
|
||||||
// Pulled by Update flow + Repair/Uninstall.
|
// Pulled by Update flow + Repair/Uninstall.
|
||||||
sc.AddSingleton<StopServiceStep>();
|
sc.AddSingleton<StopServiceStep>();
|
||||||
|
// StartServiceStep is also registered as IInstallStep above (fresh-install pipeline).
|
||||||
sc.AddSingleton<StartServiceStep>();
|
sc.AddSingleton<StartServiceStep>();
|
||||||
|
|
||||||
// Runners
|
// Runners
|
||||||
|
|||||||
@@ -67,15 +67,6 @@ public sealed class RegisterServiceStep : IInstallStep
|
|||||||
if (failExit != 0)
|
if (failExit != 0)
|
||||||
progress.Report($"Warning: failed to set restart policy (exit {failExit})");
|
progress.Report($"Warning: failed to set restart policy (exit {failExit})");
|
||||||
|
|
||||||
// Start service if auto-start
|
|
||||||
if (ctx.AutoStart)
|
|
||||||
{
|
|
||||||
progress.Report("Starting service...");
|
|
||||||
var (startExit, _) = await RunSc($"start {ServiceName}", ctx, progress, ct);
|
|
||||||
if (startExit != 0)
|
|
||||||
progress.Report("Warning: service created but failed to start. You may need to start it manually.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return StepResult.Ok();
|
return StepResult.Ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user