Skip to content

ActivationRegistrationManager.RegisterForFileTypeActivation() - path parameter is case sensitive #7

@MuyuanMS

Description

@MuyuanMS

Describe the bug

If you attempt to register the same file extension twice using the same path but with a different case then two registry entries are created under HKEY_CURRENT_USER\Software\Classes\<extension>\OpenWithProgids even though they are effectively the same item (other WinAppSdk specific entries are also duplicated).

This can be a problem for an unpackaged application that implements single instancing with both file redirection and launch redirection. If you register a file type from, say an installer and use a perfectly valid path but one whose case differs from the file system application exe location, then single instancing will fail. You end up with two applications running, one that handles file activations and the other launch activations.

If the registration path and file system path case match then single instancing works as expected.

Steps to reproduce the bug

Call ActivationRegistrationManager.RegisterForFileTypeActivation() with a valid path but using the wrong case i.e.

C:\Users\local-user\AppData\Local\Programs\AnyOldStuff\anyoldapp.exe

when the exe is named AnyOldApp.exe

Expected behavior

Paths should be case insensitive.

Screenshots

No response

NuGet package version

Windows App SDK 1.3 Preview 1: 1.3.230228005-preview1

Packaging type

Unpackaged

Windows version

Windows 11 version 22H2 (22621, 2022 Update)

IDE

Visual Studio 2022

Additional context

No response

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions