Adding Visio or Project to a device that already runs Microsoft 365 Apps looks like the smallest deployment you will ever do, and it is where a surprising number of estates quietly break their Office channel discipline. The install is easy. What surrounds it, a licensing model that changed names, a one-deployment-per-device limit in Intune, and a channel rule that fails silently instead of loudly, is where the real decisions live.
What you are actually licensing in 2026
Start with whether you need to deploy anything at all. A lightweight, web-only Visio is now included in most Microsoft 365 commercial plans, and for the person who draws four boxes and three arrows twice a year, that is the answer and it costs nothing. The desktop client is a Visio Plan 2 entitlement; Plan 1 is web only. On the Project side the names moved: Plan 1 became Planner Plan 1 and has no desktop client, while Plans 3 and 5 are now “Planner and Project” plans and still include the desktop app. Project for the web was retired into the new Planner in 2025, which confused plenty of people into thinking Project itself died. The desktop client did not go anywhere, and neither did the way you deploy it.
| Entitlement | Desktop app | Click-to-Run Product ID |
|---|---|---|
| Visio in Microsoft 365 (most plans) | No, web only | Nothing to deploy |
| Visio Plan 1 | No, web only | Nothing to deploy |
| Visio Plan 2 | Yes | VisioProRetail |
| Planner Plan 1 | No | Nothing to deploy |
| Planner and Project Plan 3 / Plan 5 | Yes | ProjectProRetail |
| Perpetual LTSC 2021 / 2024 | Yes | Year-versioned IDs, e.g. VisioPro2024Volume |
Two ID notes worth pinning. Subscription desktop Visio and Project use VisioProRetail and ProjectProRetail even though they are not retail purchases; that has confused people for a decade and still does. And the 2019-era volume IDs have dropped off Microsoft’s supported list now that Office 2016 and 2019 are out of support, so any old configuration XML in your repo referencing them is due for retirement.
How to deliver it
Intune’s built-in Microsoft 365 Apps app type can add Visio and Project through its “other Office apps” selection, and if that instance is how your M365 Apps got there in the first place, editing it is the clean path. The catch is documented and real: only one Microsoft 365 Apps deployment is delivered to a device. If Office arrived some other way, or you want Visio targeted to a small licensed group independently of the estate-wide Office deployment, the reliable pattern is the Office Deployment Tool packaged as a Win32 app, which is also what Microsoft recommends whenever Autopilot is involved. It is the standard [7.1.1] Win32 lifecycle: setup.exe plus your XML as the install command, a removal XML as the uninstall, and detection against the Click-to-Run registry, where HKLM\SOFTWARE\Microsoft\Office\ClickToRun\Configuration holds a ProductReleaseIds value that will contain VisioProRetail once the install lands.
The channel trap
Everything Click-to-Run on a device must share one update channel and one architecture. The architecture rule fails honestly: a 32-bit Visio on a 64-bit Office simply will not install. The channel rule does something worse. Install Visio with a different channel than the existing Office and the install succeeds, then re-channels the entire Office installation at the next update cycle. Nobody notices until the whole device is quietly riding a channel you never chose for it. The XML below avoids both failure modes by matching what is already installed rather than declaring anything new.
<Configuration>
<Add OfficeClientEdition="64" Channel="Current" Version="MatchInstalled">
<Product ID="VisioProRetail">
<Language ID="MatchInstalled" TargetProduct="All" />
</Product>
</Add>
<Display Level="None" AcceptEULA="TRUE" />
</Configuration>
Channel must state the device’s actual channel, because Version=”MatchInstalled” requires it; MatchInstalled then holds the new product at the installed Office version instead of dragging the device forward mid-day. Language MatchInstalled mirrors whatever language packs exist. Swap the product ID for ProjectProRetail and the same file deploys Project. The uninstall is the mirror image, and the one thing never to do in it is Remove All, which takes the entire Office installation with it.
<Configuration>
<Remove>
<Product ID="VisioProRetail" />
</Remove>
<Display Level="None" AcceptEULA="TRUE" />
</Configuration>
Licensing at runtime
The installer does not check entitlements, so scoping does. Deploy Visio to a user without a Plan 2 license and it installs happily, then runs in reduced functionality mode: view and print, no editing, with a sign-in nag at every launch. Target the deployment at the licensed group, not at the curious. Shared computer activation covers the shared-device scenario for both products, and device-based licensing, which exists for Microsoft 365 Apps itself, has no Visio or Project equivalent, so there is no shortcut around per-user licenses. The channel strategy this all hangs off, and why a device runs exactly one, is [7.1.2] Microsoft 365 Apps: Channels and Configuration.




