coder / coder/coder-desktop-windows

Uninstall does not terminate running desktop app process, blocking reinstall

Aperta
#166 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
C#
Stelle
26
Fork
12
Merge medio
6h 50m
PR unite (30g)
1

Descrizione

## 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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.