Skip to content

WinRT facades make ProcessCommandLineArguments work under Wine (Canva sign-in, command-line arguments) #59

Description

@afonsofigs

On dev, CommandLineFileOpenPatch works around ProcessCommandLineArguments because SharedStorageAccessManager "doesn't exist in Wine". CanvaSignInPatch adds a paste-URL box because the affinity:// handler "doesn't work under Wine". In my tests the method compiles once the prefix has the right files:

Prefix JIT of ProcessCommandLineArguments
Wine 10.10, winetricks dotnet48 only FileNotFoundException: Windows.Foundation.UniversalApiContract
Wine 10.10, + WinMetadata FileNotFoundException: System.Runtime.WindowsRuntime
Wine 10.10, + WinMetadata + WinRT facades compiles
Wine 11.12, + WinRT facades TypeLoadException: SharedStorageAccessManager
Wine 11.12, + WinRT facades + Windows WinMetadata + native wintypes.dll compiles

winetricks dotnet48 does not install the facades. Steps to add them: seapear/AffinityOnLinux#83 (comment).

On Wine 10.10 with these files, a handler that runs Affinity.exe directly completes the sign-in. With APL and WineFix 0.3.0 I only tested forwarding through AffinityHook.exe: the running Affinity stays up, and without the facades it crashes with FileNotFoundException. Tested on Ubuntu 26.04 with Affinity 3.3.0.4850 and ElementalWarrior Wine builds. On Wine 11.12 I only compiled the method. Not tested with the dev patches.

Would it make sense for WineFix to skip these patches when the method compiles, or to point to the facades in the docs?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions