MSIX vs MSI - How Do I Know If My App is a Good Candidate for MSIX?

Occasional Contributor

Hi All,


I hope this is the correct forum for this type of background information, but I just watched a Revenera MSIX presentation today and it brought up some questions.


First and foremost, how do I know if MSIX is right for my apps?  We have various types of .msi delivered packages - Desktop Apps, Services, Web Server, etc and some are fairly complex.  Many if not all have various Custom Actions, and reach into the native registry to set conditions for installation, based on the presence of third party apps.  I could go on and on I guess.


I believe that there is no Custom Action support at present for MSIX, but there is a script engine available whereas scripts, such as PowerShell, could be executed at first app launch. I guess that would take some work on my part to decide if running scripts could take the place of current custom actions.  That might take quite a bit of rework.


Is there eventually going to be support for Custom Actions as known to .msi developers?


During the presentation I was watching, they posed a question as to whether the MSIX licensing model is holding folks back from switching to MSIX.  I'm not really sure what that means as it pertains to our current licensing model.  Is there anyway someone might be able to explain what that might mean?


I guess what I'm hoping for is some basic information on how to determine if our current application packaging is ready or could be switched over to MSIX.


Also, what are the basic points for MSIX?  I know that its an extension or next gen of App-V in that things are encapsulated and redirected, but I'm wondering how that might effect apps that need access to other parts of the native machine file system, registry, etc.  It seems that an app might have to be able to be in standalone or live in a bubble.


Any points to information would be greatly appreciated!



5 Replies

@MaWa316 A topic far to complex to answer in a single post.


We are unlikely to see additional support for custom actions beyond what we can do using the run once script.  Many custom actions in existing MSIs are doing things at a system level that we'd really want to see done inside the container to avoid impacting other apps and the OS and making cleanup really be clean.  So generally, if the purpose of a custom action is to configure your app based on local conditions, you should be able to do that.  Custom actions intending to affect the OS and other apps may prove more problematic, but if we ever get the equivalent to connection groups these may be possible as well.


The licensing question is easier to handle and I'll take my attempt to answer it as someone that doesn't work for Microsoft.  Perhaps not a concrete answer, but my opinions. The Windows Store may be well accepted for consumers, but enterprise scale customers often don't want to acquire their apps from there.  Also, vendors with their own licensing solution might not see the need for it, and Microsoft Store licensing might not have all of the licensing options that you use today.  Microsoft has a licensing solution via the store that supports vendors without their own licensing and wanting to use this as a distribution chain.  But vendors can still use existing style licensing, and may still distribute via other means. 


If the package goes through the Windows Store it must use the Windows store license, but you can also have your own licensing on top of that.  I'm guessing that vendors that distribute themselves (such as via their own website and an AppInstaller file) and also through the Windows Store would be likely to remove their licensing from the package uploaded to the store and rely on Microsoft, while retaining it in the package self-deployed.

@TIMOTHY MANGAN Thanks so much for that response.  It was very informative and cleared some things up in my head!


Is MSIX solely intended for distribution through the Windows Store or can it be distributed outside of that.  I'm guessing the encapsulation in a container is the major draw.


With that said, can a 'contained' app reach across the container boundaries and query/access things on the host or native machine?

@MaWa316 Yes.  It can see everything.  It can also write to areas kept out of the package definition, such as the Documents folder (assuming the user has permission).

best response confirmed by Sharla_Akers (Microsoft)

Hi @MaWa316


As Tim mentioned, this can be a complex topic, but hopefully I can help provide some information that will make that easier to understand. I would recommend starting by checking out our documentation site on MSIX. We do our best to guide you through what MSIX is, how it runs on windows, how to take your existing applications or source code and move it to MSIX, and how to manage your deployments. In addition, we also have additional resources to get you started including a toolkit, labs, and videos. 


We also encourage you to post here in our Tech Community if there are any other questions you have. 



Sharla Akers

Program Manager, MSIX