The following tasks should be completed before moving forward with branding/customization:
- Invert the dependency order of the majority of services in the top-level ControlR.DesktopClient project, moving them into projects below the platform-specific projects.
- The top-level project should be as lean as possible, allowing for easy creation of alternate executables.
- For example, if it ends up being necessary to create platform-specific top-level projects.
- Make the DesktopClient.Mac project target
net10.0-macos, giving access to Mac APIs that would replace most of the p/invokes.
- In the top-level project, dynamically set tfm based on existing OS identification properties.
- Move off of deprecated APIs.
- Use
ScreenCaptureKit for screen capture instead of CoreGraphics.
- SPIKE: Create a separate installer project and attempt to re-use the bundled runtime between agent and desktop client, removing the need to ship it twice.
- This would mean moving away from single-file EXEs.
The following tasks should be completed before moving forward with branding/customization:
net10.0-macos, giving access to Mac APIs that would replace most of the p/invokes.ScreenCaptureKitfor screen capture instead ofCoreGraphics.