Menu β–Ύ β–΄

#215 Windows: register Carrier as a Share Target (sparse MSIX)

closed
nobody
6 days ago
2026-08-06
Anonymous
No

Originally created by: kristofferR

Windows' share-sheet equivalent (the Share contract) only lists apps with package identity. Carrier ships as a plain NSIS install, so identity has to come from a "package with external location" (sparse MSIX) that points at the installed executable and declares the windows.shareTarget extension.

Hard dependency, decide first

Sparse packages must be Authenticode-signed with a certificate that chains to a root trusted on user machines, and Carrier's Windows builds are currently unsigned (only Tauri updater signing exists). Practical option: Azure Trusted Signing (cheap, CI-friendly); a classic OV certificate works too. Without this the feature cannot ship on Windows.

Design

  • share-extension/windows/AppxManifest.xml: Identity (publisher must equal the certificate subject), uap10:AllowExternalContent, an Application whose executable points at the installed carrier.exe, and a windows.shareTarget extension declaring supported formats (Bitmap, StorageItems; WebLink later).
  • CI: makeappx pack + signing β†’ carrier-share.msix, shipped inside the NSIS installer's install dir.
  • Registration: on first run (and after updates), Carrier self-registers via PackageManager.AddPackageByUriAsync with ExternalLocationUri (user-scoped, no elevation); the NSIS uninstaller removes the package. Windows 10 2004+ only β€” older systems simply never register.

Testing notes

  • Verify Carrier appears in Explorer's Share pane and the Photos app share flow.
  • Update path: bump the package version alongside the app version so re-registration succeeds; verify uninstall removes the entry.

Part of [#217]. Blocked on the signing decision; [#216] handles the activation.

Related

Tickets: #216
Tickets: #217
Tickets: #220

Discussion

  • Anonymous

    Anonymous - 6 days ago

    Originally posted by: kristofferR

    [!NOTE]
    πŸ€– Claude Opus 5.5 responding on behalf of Kristoffer

    Closing as not planned. A Windows share target needs a sparse MSIX package signed with a certificate trusted on users' machines, extra CI packaging and registration on every update, all for one entry in the Share pane. Too much for what it adds. The macOS share extension shipped through [#220].

     

    Related

    Tickets: #220

  • Anonymous

    Anonymous - 6 days ago

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.