Skip to content

Ship Windows NSI installer that registers Unity test apps for the workspace launcher #108

@dfattal

Description

@dfattal

Goal

Mirror the displayxr-demo-gaussiansplat installer pattern for the Unity test apps so they appear as discoverable tiles in any DisplayXR workspace controller (the DisplayXR Shell being the reference implementation) once installed — instead of users having to point the shell at a manual build dir via dev_register.bat-style scripts.

Reference

What the installer must do

  • Hard-prereq the runtime: read HKLM\Software\DisplayXR\Runtime\{InstallPath,Version} (64-bit reg view) in .onInit; abort if missing or below a MIN_RUNTIME_VERSION define.
  • Install the built test-app exe + assets under Program Files\DisplayXR\Unity\<TestAppName>\.
  • Drop a registered-mode .displayxr.json at %ProgramData%\DisplayXR\apps\<sanitized_name>.displayxr.json with:
    • schema_version: 1
    • name, type: \"3d\", category: \"test\" (or \"demo\")
    • display_mode: \"auto\"
    • description
    • icon: \"icon.png\", icon_3d: \"icon_sbs.png\", icon_3d_layout: \"sbs-lr\"
    • absolute exe_path with forward slashes
  • Drop icons next to the manifest (icon paths in the manifest are resolved relative to the manifest file, per spec §2.3).
  • Add/Remove Programs entry under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\DisplayXRUnityTest<...> (DisplayName, UninstallString, QuietUninstallString, InstallLocation, DisplayIcon, Publisher, DisplayVersion, EstimatedSize).
  • Uninstaller cleans up the manifest + icons under %ProgramData%\DisplayXR\apps\ and removes the Add/Remove Programs key. Cascade-friendly with the runtime uninstall.

Unity-specific scope

The three Unity test projects live in sibling repos:

Open question to resolve as part of this issue: does the NSI live alongside each test project (one installer per repo), or do we ship a single bundle installer that drops all three tiles from one .exe? Splatting follows the one-installer-per-repo model; the Unity test set may be better served by a single combined installer.

Output is a .uxp/Windows build via BuildScript.BuildWindows64 (memory: Unity batchmode build). The NSI's BIN_DIR should point at the Unity build output directory.

Acceptance

  • Running displayxr-shell.exe and opening the launcher shows the Unity test tile(s) with the correct icon (2D fallback + stereo icon_3d) without any manual sidecar drop.
  • Uninstalling cleanly removes both the install dir and the workspace manifest.
  • Installer aborts gracefully if no compatible runtime is present, with a link to the runtime releases page.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions