Skip to content

How to: AOT roots & environment profiles

How-to · Core Studio 3.0 · Verified 2026-09-01

Goal: control which metadata the Studio reads — and switch roots without paying the indexing cost twice.

Root resolution (order of precedence)

  1. XPP_AOT_ROOT environment variable — the explicit override; wins over everything. Ideal for a second instance pointed at another root (see Tips & tricks).
  2. File → Open AOT folder… — the interactive choice; persisted to settings and re-indexed immediately.
  3. Default — the bundled samples/ in dev builds; an empty per-user folder in the packaged app until you pick a root.

Switching roots

  • Each root gets its own persisted index (%APPDATA%\xpp-studio\aot-index\<hash>.db) — switching back to a previously indexed root reloads from cache in seconds, with a background reconcile of any changes.
  • Your projects re-resolve their elements against the newly active root’s index as its tiers land.
The AOT root picker choosing the PackagesLocalDirectory metadata root
The AOT root picker choosing the PackagesLocalDirectory metadata root

What environment profiles add

The active environment profile supplies assembly hint paths when you Add F&O Reference… to a C# companion — it is how the Studio knows which environment’s Dynamics.Ax.* assemblies you mean. Profile behavior beyond that is documented at evidenced depth only, on the environment profiles walkthrough — which carries a VERIFY-AT-CAPTURE flag until the profile surface is verified against the running product.

Verify it worked

  • After switching, the AOT explorer shows the new root’s models; the status bar tracks the fresh index’s tiers.
  • A second open of the same root logs the cache-load line.

If it goes wrong

Next: workspaces & projects · AOT browsing & index lifecycle.