The GenerateBootstrapper from VS works for MSIX as well as MSI packages.

Brass Contributor

Other then getting the Microsoft Edge WebView2 Runtime to be installed when my MSIX package is being installed (using the win32dependencies:ExternalDependency)

 

<win32dependencies:ExternalDependency Name="Microsoft.WebView2" Publisher="CN=Microsoft Windows, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" MinVersion="1.1.1.1" Optional="true" />

 

Or trying to make an XBox game and then take advantage of desktop6:InstallActions there was no way I could find to install the required prerequisites that my MSIX packages needed in order to run.

 

I use the Wix Toolset to create my current MSI packages (which then get converted into MSIX packages), but even the Wix Toolset bootstrapper Burn does not (yet) support MSIX packages as a target.

 

Feature request: Support for Microsoft's new MSIX installer format · Issue #5781 · wixtoolset/issues...

 

But I discovered (by dumb luck) that the GenerateBootstrapper task provided by Visual Studio that I use for some of my MSI packages would in fact, launch an MSIX package if you told it to do so!! (and not error or complain one bit)

 

<GenerateBootstrapper ApplicationName="$(DisplayName) $(ProductVersion)" ApplicationFile="$(PackageFullName).msix" BootstrapperItems="@(BootstrapperFile)" OutputPath="$(OutPut_Dir)$(ShortDisplayName)\MSIX\" Path="$(Wix)bootstrapperfiles" Culture="en" ComponentsLocation="Absolute" CopyComponents="True" ApplicationRequiresElevation="true" />

 

Even though the install is elevated the MSIX is installed Per User and is not provisioned for All Users, even so this has been a good little find that I thought might help a few folks out.

2 Replies
Please be aware that when you add the webview2 dependency, you MUST also add the Capability "internetClient" declaration to the package. It isn't mentioned in the documentation, but obvious once you think about it.

@TIMOTHY_MANGAN 

Thanks Tim,

I got lucky here as the product has its help online, so I had added the "internetClient" Capability to support that.

Cheers,

Simon.