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
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>\OpenWithProgidseven 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.exewhen 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