New feature: Make changes to Office deployments without changing the version

Published 08-21-2019 11:12 PM 15.1K Views

With the most recent release of the Office Deployment Tool (ODT) we have implemented a new feature based on customer's feedback. Starting with version 16.0.11615.33602 it is possible to make changes to an existing installation of Office 365 ProPlus while keeping the installed version as is, even when a newer one is available on the Office CDN or in your network share/local folder.



Let's assume that you want to add e.g. a Language Pack to an installation of Office 365 ProPlus on a certain device in an automated fashion. We also assume, that the device is not on the most recent build of their update channel, e.g. the device is still on SAC 1803. Maybe there is still some testing to be done before SAC 1808 can be deployed across the organization.

The updated "version" handling allows you to add e.g. Language Packs, Proofing Tools, additional products (like Visio or Project) or apps without updating the installed build, even when a newer build is available in the source location (Office CDN or the specified source path).

In the past the ODT automatically updated the installation to the latest build while installing the specified product, Language Pack or Proofing Tool.





How to use

The usage of the new feature is straight forward. Instead of specifying a build number (like 16.0.9126.2356), you just specify "MatchInstalled". This instructs the ODT to keep whatever build version is already installed.



In the past we saw different workaround in order to pin the version. These ranged from manually updating the configuation.xml with the correct build number every time to custom scripts which injected the build number into the configuration.xml on the fly. The new feature allows you to retire such workarounds and use a consistent method across update channels and versions.


Sample XMLs

The following XML is an implementation example of the "dynamic, lean and universal packaging" concept, which greatly reduces effort and maintenance costs of install packages. The configuration file will install Project, match the languages to already installed Office products and keep everything else (architecture (x86/x64), update channel and version) as is:


	<Add Version="MatchInstalled">
		<Product ID="ProjectProRetail">
<Language ID="MatchInstalled" TargetProduct="All" /> </Product> </Add> </Configuration>


The following XML will add the German Language Pack and keep the architecture (x86/x64), update channel and version as is:


	<Add Version="MatchInstalled">
		<Product ID="LanguagePack">
			<Language ID="de-de"/>



In order to use the new feature, the following prerequisites apply:

  • Use Office Deployment Tool 16.0.11615.33602 or newer
  • The feature is intended to be used when an existing installation is modified or something added to it. If no installation is present, "MatchInstalled" for "Version" will be ignored and the ODT will go through normal detection to install proper version. No hard error in such case.
  • If you are not using the Office CDN as an installation source, make sure to have the matching source files in your specified source path. We recommend to leverage the Office CDN.


The Authors

This blog post is brought to you by @Martin Nothnagel  and @MattPhilipenko, two ProPlus Rangers at Microsoft. We’re looking forward to your questions and feedback in the comments below.

Senior Member

What above switching from having Access Runtime to the Full Version of Access, will this work for this?.

Frequent Contributor

whether it works on all the office version, we have version with 9126...

Occasional Contributor

Does it also work for removing a component? Or howto achieve this, removing Excel for example from a full install


@David Bradtberg Switching from Access Runtime to full Access would require a removal of ProductID=AccessRuntimeRetail and adding Access e.g. as a part of Office 365 ProPlus. During removal, we don't update the existing install, so no need for Version=MatchInstalled. For adding full Access, you can leverage Version=MatchInstalled to prevent unintended updates.

@Sankarasubramanian Parameswaran The feature is built into the Office Deployment Tool (ODT), so as long as you use ODT 16.0.11615.33602 or newer, it will work.

@fatshark_2k It will also work for removing a component, as described here: ODT documentation.

New Contributor

We have a scenario where we have Office 365 Pro Plus installed on our SOE and patched every month, all good. We also have Project and Visio packaged as separate apps that are deployed via SCCM. These were packaged some months ago. What we are finding is that when a user request Project or Visio, and we push out from SCCM, because they were packaged a while ago, the install reverts the whole of the Office 365 installation back to the same version as Project or Visio. Its not practical to update the Project \ Visio packages each month to keep them inline with the patched Office version. Would the steps in this article help us if we added to the Project \ Visio install packages. i.e. Would it keep them on that version and not impact the version of Office already installed? Thks

@tobeadvised Please check out my other blog post on how to build dynamic, lean & universal packages which don't get outdated this quickly: Building dynamic, lean & universal packages for Office 365 ProPlus In combination with the new Version=MatchInstalled functionality you can craft packages which will resolve your issue (and reduce the amount of data pushed around). Basic approach is to remove the source files and allow ODT to adapt to the existing install and fetch what it needs only. Hope this helps.

Occasional Contributor

@Martin Nothnagel 


This is not working if you have switched Channel in the registry and the current installed version of Office has a different channel. We are in a situation where we have switched channels on our clients from Monthly to Semi-Annual and are waiting for it to catch up so this is a big problem. We get error "30125-1011 (404). Is your internet connection working".

@Johan Nilsson: That's pretty much expected. During the "channel switch" there is a short period where your client already has the new update channel assigned, but still the version installed from the previous update channel. In this case setup can't find the version it is trying to keep in the new channel. You have to wait till the switch is fully performed (both assigned channel as well as installed version). I recommend to also have a look at How to manage Office 365 ProPlus Channels for IT Pros.

Occasional Contributor

@Martin Nothnagel  If its expected it would be nice if it was mentioned somewhere in the documentation so we don´t have to spend hours figuring these things out ourselves.
Yes we are building everything with Dynamic packages now, but its kind of a pain getting there.

@Johan Nilsson: We heard this feedback loud and clear, thanks for sharing. My peer Dave Guenthner shared more details in his blog post linked above (fixed the linking) and we are backporting this into our official documentation. Thanks for bringing this up!


I'm sorry but it still feels like I was doing it in the 90's... Can we have a proper 'change' option in the control panel or this new 'apps & features' where I can simply tick/untick the app I want or I don't want? Why do I need a tool to produce the XML to such a simple thing? I really don't get it, sorry guys. And it's not about me, our clients keep asking me about such things and I really don't know what to say.


600 people company just switched to Teams on my watch. Everything's fine. Can somebody tell me how can I uninstall SfB old client? Or even better - this 'Groove' thing no one EVER used - I still don't know what it is exactly?

Occasional Visitor

Trying to add Visio to a  Monthly Enterprise Channel install of Office 365. I consistently get error 0-1008.


Initially I was getting error 30182-1011 until I added AllowCdnFallback="True" to the XML. Not sure this is working well for the new Monthly Enterprise Channel or something else is going on. 

	<Add Version="MatchInstalled" AllowCdnFallback="True">
		<Product ID="VisioProRetail">
			<Language ID="MatchInstalled" TargetProduct="O365ProPlusRetail" />
Version history
Last update:
‎Apr 28 2020 12:59 AM
Updated by: