dragon-iso/src/TeamsISO.App.WinUI/app.manifest

33 lines
1.7 KiB
Text
Raw Normal View History

feat(winui3): scaffold TeamsISO.App.WinUI alongside the WPF host First step of the WinUI 3 replatform per the approved redesign brief. The new project coexists with the existing src/TeamsISO.App (WPF) so the WPF host keeps building and shipping while the WinUI 3 redesign lands incrementally. Once the WinUI 3 build is feature-complete and tested against a real Teams meeting, the WPF project is retired. Scaffold contents: * src/TeamsISO.App.WinUI/TeamsISO.App.WinUI.csproj Windows App SDK 1.6 LTS (250602001), unpackaged mode (WindowsPackageType=None) so the existing MSI installer keeps working. Target framework net8.0-windows10.0.19041.0, min platform 10.0.17763.0 to preserve Win10 1809+ compatibility for working broadcast hardware. Pins WindowsSdkPackageVersion=10.0.19041.38 so .NET SDK 8.0.301 builds cleanly without an SDK upgrade on the build host. * src/TeamsISO.App.WinUI/app.manifest PerMonitorV2 DPI awareness + gdiScaling for crisp text on high-DPI broadcast monitors. asInvoker trust level (control surface :9755 and OSC :9000 bind to 127.0.0.1, no admin needed). * App.xaml + App.xaml.cs Minimal startup: brings up MainWindow. The full pipeline (NDI runtime preflight, IsoController wiring, single-instance mutex, REST + OSC bridge, tray icon, crash diagnostics, auto-update banner, onboarding) migrates in subsequent commits. * Themes/Tokens.xaml Wild Dragon design tokens as ThemeDictionary entries (Default = Dark, Light). Colors as Color resources, Brushes paired per theme so {ThemeResource} auto-swaps when RequestedTheme flips — no app restart, no flicker. Spacing/radii/typography tokens are theme-agnostic at the outer level. Light palette maintains brand recognition via cyan-tinted off-whites (#FAFAFB canvas, #F0F1F3 rail) rather than pure white, and splits cyan into accent.cyan.surface (#97EDF0, works in both modes because text on top is near-black) and accent.cyan.text (#97EDF0 dark / #0E7C82 light) so captions and inline labels keep AA contrast. * Themes/Controls.xaml Button hierarchy with real commitments: Primary (cyan fill, one per surface), Secondary (transparent bordered), Tertiary (text only), Destructive (coral border + text), Caption (titlebar), RailIcon. Typographic ramp (Display / Title / Heading / Body / Subtle / Caption / Mono) at the DESIGN.md 1.25 ratio. * CommunityToolkit.WinUI.UI.Controls.DataGrid 7.1.2 referenced for the participants table migration. (Toolkit 8.x dropped DataGrid; 7.x is the only currently-maintained free option for WinUI 3.) * Inter.ttf + JetBrainsMono.ttf + dragon-mark.png + teamsiso.ico copied from the WPF project's Assets/ so the WinUI 3 host is self-contained. * TeamsISO.sln + TeamsISO.Windows.slnf updated to include the new project. The .slnf paths switch to backslash form so MSBuild can match them against the .sln's canonical path representation. Verified: dotnet build TeamsISO.Windows.slnf -c Debug succeeds with 0 warnings and 0 errors for all 8 projects (WPF host, WinUI 3 host, engine, NDI interop, console, three test projects).
2026-05-12 23:52:35 -04:00
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="TeamsISO.App.WinUI"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- TeamsISO is a normal-trust desktop app; no UAC elevation needed.
Network listens (control surface :9755 and OSC :9000) bind to
127.0.0.1 only, which doesn't require admin. -->
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Win10 1809 (17763) is the floor — same as TargetPlatformMinVersion. -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
<!-- Crisp text on high-DPI broadcast monitors. -->
<gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">true</gdiScaling>
</windowsSettings>
</application>
</assembly>