Packaging Series:Convert VLC Media Player to MSIX
VLC media player (or in short VLC) is an open-source, cross-platform media player created by VideoLan. At the moment, its one of the most popular players on the market.Let’s see if we can convert it to the new MSIX technology by Microsoft and what challenges we face in doing so.
- Install Advanced Installer if you don’t have it installed
- Open Advanced Repackager
- Click Capture Setup
- Browse and select the VLC executable
- Press Start Local from the toolbar
- Select the location where the project is saved
- Install VLC with the default settings
- Check MSIX/APPX Package in the top left corner
- Click Open in Advanced Installer
Once opened in Advanced installer you need to configure the build and sign the package. In the Package Information page, input the ID (VideoLAN.VLCMediaPlayer), Display Name (VLC Media Player), Version (22.214.171.124), Publisher (VideoLAN), and Logo.
Navigating to Application Details page shows us what Tiles (shortcuts) are present in the start menu. The Advanced Repackager captured four shortcuts, three of those are the different URLs for Documentation, VideoLAN website, and Skins.
For this article, we delete the three URL shortcuts and keep only with main entry point shortcut for the application.
But why only one? In the original installation, we see that three shortcuts are placed:
- VLC media player - points to vlc.exe
- VLC media player skinned - points to vlc.exe with the argument “-Iskins”
- VLC media player - reset preferences and cache files - points to vlc.exe with the argument “--reset-config --reset-plugins-cache vlc://quit”
So what happened? By default, in MSIX, shortcuts do not accept additional arguments. The Arguments field that you see present in Advanced Installer is an extra feature implemented by us.
Also, you can only have one shortcut that points to one EXE at a time. That is why Advanced Repackager places only one shortcut.
However, you can create another one manually, for example, the “VLC media player skinned” shortcut if you want to retain the skinned version of VLC:
- Right-click the Application Details pane and click New Application
- From the Application Folder select vlc.exe
- Populate the fields, ID (VLCmediaplayerskinned), Display Name (VLC media player skinned), Description (VLC media player skinned)
- Modify the AppList Entry to Default
- In the Arguments field input “-Iskins”
Now that everything is set up as we desire, let’s click build from the top left corner. Unfortunately, the build fails with the following error message “SignTool Error: SignedCode::Sign returned error: 0x800700C1”. To find out more about this error check out our FAQ about Digital Signature.
As we can see, the SignTool failed to sign the uninstall.exe from the application directory. Because this is a capture, we don’t need uninstall.exe in our package, so we can delete it. After we delete the file and try to build the package again, everything goes well, and we have our MSIX.
So there you have it. With a few clicks and some minor adjustments to the package, like the shortcuts and the deletion of the uninstall.exe file, you have a working MSIX for VLC.