MSI packages install resources (files, registry keys, shortcuts, etc) grouped into Components and Features. MSIX packages install applications which get tiles (like shortcuts) and extensions that reference an executable. To map these different points of view, the FireGiant MSIX Extension has a simple heuristic that can be overridden:
There are three ways to explicitly define the Application. First, the msix:Application
attribute can be added to an executable File
element. This is the simplest way to define the Application:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:msix="http://www.firegiant.com/schemas/v4/wxs/heatwave/buildtools/msix">
...
<Component Directory="INSTALLFOLDER">
<File Id="MyFile" Source="path\to\my.exe" msix:Application="MyApp">
<Shortcut Name="My Application" ... />
The second option is to add the msix:Application
element as a child of the executable File
element. The explicit msix:Application
element allows for additional control of the Application if necessary:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:msix="http://www.firegiant.com/schemas/v4/wxs/heatwave/buildtools/msix">
...
<Component Directory="INSTALLFOLDER">
<File Id="MyFile" Source="path\to\my.exe">
<msix:Application Id="MyApp" OverrideDisplayName="My Desktop Bridged Application" />
<Shortcut Name="My Application" ... />
The third option is to move the msix:Application
element out from under the File
element. This can be used to group your MSIX related elements together:
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:msix="http://www.firegiant.com/schemas/v4/wxs/heatwave/buildtools/msix">
<Package ...>
<msix:Msix Id="Example" Publisher="CN=Example" />
<msix:Application Id="MyApp" ExecutableFile="MyFile" />
MSIX packages can include multiple Applications, but the Windows Store will accept only packages with a single Application. The FireGiant MSIX Extension will display a warning if multiple Applications are included in the package.