Skip to content

Remove GVFS.Service.UI (dead code)#3

Closed
tyrielv wants to merge 1 commit into
tyrielv/net10-central-packagesfrom
tyrielv/net10-remove-service-ui
Closed

Remove GVFS.Service.UI (dead code)#3
tyrielv wants to merge 1 commit into
tyrielv/net10-central-packagesfrom
tyrielv/net10-remove-service-ui

Conversation

@tyrielv
Copy link
Copy Markdown
Owner

@tyrielv tyrielv commented Apr 8, 2026

Remove GVFS.Service.UI (dead code)

⚠️ Stacked on microsoft#1937 — target branch is tyrielv/net10-central-packages. GitHub will retarget to master once microsoft#1937 merges.

Summary

Remove GVFS.Service.UI entirely — dead code. The Service.UI process displayed Windows toast notifications, but only the MountFailure notification was actively sent, and it provided no useful value.

Removing eliminates XmlSerializer and WinRT COM interop dependencies that would block NativeAOT compilation.

What was removed

  • GVFS.Service.UI project (13 files) — toast notification process
  • Unit testsGVFSToastRequestHandlerTests.cs
  • Service integration — launch/relaunch logic, notification handler (gutted to no-op)
  • Installer — start menu icon, start/stop procedures
  • Payload/layout — signing list entry, xcopy
  • Constants/config — UIName, ServiceUI log name, GVFSServiceUILocation
  • Diagnostics — Service.UI log collection in DiagnoseVerb
  • PackageMicrosoft.Windows.SDK.Contracts (only consumer)

Review guide

  • NotificationHandler.cs — gutted to no-op rather than deleted, in case callers exist
  • Setup.iss — verify all 4 Service.UI-related procedures and calls removed
  • GVFSService.Windows.cs — verify LaunchServiceUIIfNotRunning and call site removed

Verification

  • ✅ All C# projects build
  • ✅ 789/789 unit tests pass (4 Service.UI tests removed)

Context

Phase 2D of .NET 10 NativeAOT migration. Stacked on microsoft#1937 (central packages).

The Service.UI process displayed Windows toast notifications, but only
the MountFailure notification was actively sent, and it provided no
useful value. Removing eliminates XmlSerializer and WinRT COM interop
dependencies that would block NativeAOT compilation.

Removes: project, unit tests, installer integration, service launch
logic, notification handler, diagnostics log collection, and the
Microsoft.Windows.SDK.Contracts package.

Assisted-by: Claude Opus 4.6
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
@tyrielv tyrielv closed this Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant