Dynamically convert MSI versions of Project and Visio to Click-to-Run

Published Aug 12 2019 06:38 AM 15.7K Views
Microsoft

With the latest release of the Office Deployment Tool (ODT) we have implemented a new feature based on customer feedback. It is now possible to make the installation of a C2R product dependent on the previous presence of an MSI-based product. As it works for all products, it is especially helpful when deploying Project and/or Visio to users which had it previously. The feature is known as MSI Condition.

 

Prerequisites
In order to use the new feature, the following prerequisites apply:
• Office Deployment Tool 16.0.11901.20022 or newer
• The feature is intended to be used when an Admin wants to migrate the user from Microsoft 365 Apps/Project/Visio in one pass with one XML.
• If you are not using the CDN as an installation source, make sure to have the matching source files in your specified source path.
• MSI Condition will detect 2010/2013/2016 MSI products.

 

Scenario
Since the release of RemoveMSI we’ve had the capability for your “first install” to match the MSI version of legacy Office and replace with Microsoft 365 Apps. MSI Condition allows an admin to specify a list of MSI Product ID’s along with a Product ID for a Click-to-Run install such as Subscription, Standard Perpetual and Professional Perpetual.

 

How to use
To use this feature simply add the MSICondition attribute to the Product node as shown in the example below. Once you have created the XML run setup.exe /configure like you would with any other installation process and that’s it

 

Product Codes you could use:

  • PrjStd
  • PrjPro
  • VisStd
  • VisPro
  • PrjStdR
  • PrjProR
  • VisStdR
  • VisProR

 

Benefit
In the past customers created very complex scripting to detect and replace Office products, in some cases running the install up to three times based on the number of previous products detected. We have even seen customers simply ignore Project and Visio and remove everything, then wait for helpdesk to get a call and replace it with the version the end user requested. MSI Condition makes your migration from MSI to C2R flow smoothly with one XML for your deployment which dynamically adjusts to the task at hand.

 

MSIcondition.jpg

Please note that the above picture shows a simplified XML(in the image) to just show the concept behind it. For a fully working XML, please refer to the next section.

 

Sample XML
The following XML will
• install Microsoft 365 Apps from Monthly channel, and match the previously installed languages
• install Visio Pro on machines that already have any older MSI version of Visio Pro
• install Project Pro on machines that already have any older MSI version of Project Pro
• remove all older MSI versions of Microsoft 365 Apps, Project and Visio

 

 

 

 

 

 

<Configuration>
	<Add Channel="Monthly" OfficeClientEdition="64">

		<Product ID="O365ProPlusRetail">
			<Language ID="en-us"/>
                        <Language ID="MatchPreviousMSI"/>
			<ExcludeApp ID="Groove"/>
			<ExcludeApp ID="OneNote"/>
	</Product>

		<Product ID="VisioProRetail" MSICondition="VisPro,VisProR">
			<Language ID="en-us"/>
                        <Language ID="MatchPreviousMSI"/>
			<ExcludeApp ID="Groove"/>
		</Product>

		<Product ID="ProjectProRetail" MSICondition="PrjPro,PrjProR">
			<Language ID="en-us"/>
                        <Language ID="MatchPreviousMSI"/>
			<ExcludeApp ID="Groove"/>
		</Product>

	</Add>
	<RemoveMSI/>
</Configuration>

 

 

 

 

 

 

Is this limited to Visio and Project?
No, it is not. The feature will accept any valid product ID for Click-To-Run and any MSI code as a condition. So, you can mix and match to your specific needs you could also build a deployment which installs e.g. Access Runtime for existing users of it:

 

 

 

 

 

 

<Configuration>
	<Add>
		<Product ID="O365ProPlusRetail">
			<Language ID="en-us"/>
			<Language ID="MatchPreviousMSI"/>
			<ExcludeApp ID="Access"/><
		</Product>
		<Product ID="AccessRuntimeRetail" MSICondition="AccessRT">
			<Language ID="en-us"/>
			<Language ID="MatchPreviousMSI"/>
		</Product>
	</Add>
</Configuration>

 

 

 

 

 

 

 

The Authors
This blog post is brought to you by @Matt Philipenko (OFFICE PFE)  and @Martin Nothnagel , two senior ProPlus deployment experts at Microsoft from the Services organization. We’re looking forward to your questions, feedback and comments below.

15 Comments
Co-Authors
Version history
Last update:
‎Dec 03 2021 05:09 PM
Updated by: