coder / coder/coder-desktop-windows

Uninstall does not terminate running desktop app process, blocking reinstall

Offen Anfängerfreundlich
#166 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
C#
Sterne
26
Forks
12
Ø Merge
6 Std. 50 Min.
Gemergte PRs (30 T.)
1

Beschreibung

## Summary

Uninstalling Coder Desktop via the Control Panel "Uninstall a program" wizard completes successfully, but the `Coder Desktop.exe` process (and the VPN service background process) remain running in Task Manager. This causes reinstallation to silently fail — the app never launches again.

## Root Cause

The MSI installer has no mechanism to close the running desktop app process during uninstall. The `ServiceInstaller` manages the Windows service lifecycle (`StopOn = InstallUninstall_Wait`, `RemoveOn = Uninstall_Wait`), but there is no corresponding `WixCloseApplication` or custom action to terminate the user-space desktop app.

After uninstall, the old `Coder Desktop.exe` process continues running and holds the `AppInstance` singleton key (`Coder.Desktop.App` via `AppInstance.FindOrRegisterForKey`). On reinstall and relaunch:

1. The new instance calls `AppInstance.FindOrRegisterForKey("Coder.Desktop.App")`
2. It finds the old (zombie) instance, so `mainInstance.IsCurrent` is `false`
3. It calls `RedirectActivationToAsync` to the old instance
4. The old instance's `OnActivated` receives a `Launch` activation kind, which hits the unhandled `default` case
5. The warning `activation for "Launch", which is unhandled` is logged and nothing else happens
6. The new instance exits, and the app appears to never start

## Steps to Reproduce

1. Install Coder Desktop and launch it (the app runs in the system tray)
2. Uninstall via Control Panel → "Uninstall a program"
3. Observe in Task Manager that `Coder Desktop` and `Coder VPN Service` background processes are still running
4. Reinstall Coder Desktop and launch it
5. The app never appears — no tray icon, no window
6. Check the logs for: `[WRN] activation for "Launch", which is unhandled`

## Expected Behavior

- The uninstaller should terminate the running `Coder Desktop.exe` process before removing files
- The VPN service should be fully stopped and removed
- After reinstall, the app should launch normally

## Suggested Fix

Add a [`WixCloseApplication`](https://wixtoolset.org/docs/schema/util/closeapplication/) element (from `WixExtension.Util`) to the MSI project targeting `Coder Desktop.exe`. This will gracefully close the running app process during uninstall/upgrade before files are removed. For example in `Installer/Program.cs`:

```csharp
project.Include(WixExtension.Util);
project.WixSourceGenerated += doc =>
doc.FindFirst("Package").AddElement(
WixExtension.Util.ToXName("CloseApplication"),
"Target=Coder Desktop.exe; CloseMessage=yes; RebootPrompt=no");
```

---

Created on behalf of @uzair-coder07

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne in Installer/Program.cs und überprüfe den bestehenden ServiceInstaller-Lebenszyklus des MSI-Projekts sowie die Verwendung von WixExtension.Util. Erstelle oder führe den Deinstallations- und Neuinstallationsablauf aus, während Coder Desktop ausgeführt wird, und überprüfe anschließend, dass während der Deinstallation sowohl die Desktop- als auch die VPN-Prozesse beendet werden und die App nach der Neuinstallation normal startet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
build-system, desktop
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
65/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.