[PR #3474] Move project to app CRTs in preparation to run Universal #25386

Open
opened 2026-01-31 09:09:11 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/3474

State: closed
Merged: Yes


Summary of the Pull Request

  • Non-Desktop editions need to use the App CRT. This moves us to the App CRT for all WinRT projects (Terminal projects).

PR Checklist

  • I work here
  • Tests should still pass
  • Am a core contributor.

Detailed Description of the Pull Request / Additional comments

We were overriding to the desktop SDK for our terminal project for reasons related to unpackaged activation. But:

  1. That's not super important as we're focused on packaged activation for a myriad of other reasons
  2. We have the forwarders now and as long as they're next to the WindowsTerminal.exe, they should be invoked and forward the App CRT things to the desktop one.

In order for me to get this to run on non-Desktop platforms, I need the universal app CRT instead. So this uses that by default.

One casualty of war is winconpty.dll. If I build it in DLL form since it's a non-store project, it gets the desktop CRT. But the now-universal TerminalConnection.dll project dependent on the app CRT needs that.

I could set winconpty.dll to the store/app crt... and then the tests would break unless I carried the forwarders with.

So since there's no pressing need to distribute the winconpty.dll as a DLL, I made it a .lib and let it get rolled into the relevant binaries that already have their platform-appropriate CRTs.

Validation Steps Performed

F5-ran the CascadiaPackage project

**Original Pull Request:** https://github.com/microsoft/terminal/pull/3474 **State:** closed **Merged:** Yes --- <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request - Non-Desktop editions need to use the App CRT. This moves us to the App CRT for all WinRT projects (Terminal projects). <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [x] I work here * [x] Tests should still pass * [x] Am a core contributor. <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments We were overriding to the desktop SDK for our terminal project for *reasons* related to unpackaged activation. But: 1. That's not super important as we're focused on packaged activation for a myriad of other reasons 2. We have the forwarders now and as long as they're next to the WindowsTerminal.exe, they should be invoked and forward the App CRT things to the desktop one. In order for me to get this to run on non-Desktop platforms, I need the universal app CRT instead. So this uses that by default. One casualty of war is winconpty.dll. If I build it in DLL form since it's a non-store project, it gets the desktop CRT. But the now-universal TerminalConnection.dll project dependent on the app CRT needs that. I could set winconpty.dll to the store/app crt... and then the tests would break unless I carried the forwarders with. So since there's no pressing need to distribute the winconpty.dll as a DLL, I made it a .lib and let it get rolled into the relevant binaries that already have their platform-appropriate CRTs. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed F5-ran the CascadiaPackage project
claunia added the pull-request label 2026-01-31 09:09:11 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#25386