In the previous article, we talked about Package Support Framework and how MSIX solves the problem of running traditional Win32 apps by a community driven route. In this article, let's focus on another important piece of MSIX - Modification Packages and why they are important to you, if you are an ISV developing software or an IT Pro, as a software consumer.
Before we jump into what a modification package is, let's start with Why ! If you are an IT Pro, you would have repackaged hundreds of packages. While repackaging a vendor setup is one side of the story, adding your enterprises customizations is a totally different story. It could be a simple enterprise branding or a complex feature customization. IT Pros have been managing this for ages now without actual access to the source code. When you have your customizations for a given vendor app ready, you definitely don’t want to do this over again when a new version of the vendor app is available. So, there is a pressing need for isolating customization from the core app. Traditionally, transform files (.MST) is mostly how you have applied customizations to your setups. The question is - if MSIX is the next standard, how do you do the same without access to source?
While customizations are for IT Pros, from an ISV point of view, there is an increase in developing modular applications where the base app is kept separate from any plugins. Imagine you are developing an editor app and over a period of time, you want to add PDF editing capabilities. Best practices suggest, keep the base and plugins separate.
Enter Modification Packages !
Modification package help you apply customizations on a given base app or add plugins/addons without changes to the base app. With this approach, your base app and customizations/plugins are in separate MSIX packages giving you the isolation you need and removing the need to create your customizations again. As of this writing, MSIX supports modifying the files and registry entries in the base app.
To put it simply, if your base app has say 'settings.xml', you can have a modified version of settings.xml in the modification package to tweak the app settings in your enterprise. MSIX runtime, will honor the 'settings.xml' from the modification package instead of the base package allowing your customization to take effect.
Installing and Uninstalling Modification Packages
Modification packages are always bound to a base app. In fact, both of them share the same identity. This is what helps MSIX runtime to pick the customizations. They can't be installed standalone. So, while creating a modification package, you need to mention the base app in your manifest file in the Dependencies section.
Before installing the modification package, the base app should be installed. Else, you will be presented with an error.
You can find all the modification packages to your base app from Apps and Features (Windows Settings --> Apps & Features). Select your app and navigate to 'App add-ons & downloadable content'. You will find them.
You will be able to uninstall them without affecting the base app.