Take your existing desktop app and add modern experiences for Windows 10 users. Then, achieve greater reach across international markets by distributing it through the Windows Store. You can monetize your app in much simpler ways by leveraging features built right into the store. Of course, you don't have to use the store. Feel free to use your existing channels.
This package gives your app an identity and with that identity, your desktop app has access to Windows Universal Platform (UWP) APIs. You can use them to light up modern and engaging experiences such as live tiles and notifications. Use simple conditional compilation and runtime checks to run UWP code only when your app runs on Windows 10.
Aside from the code that you use to light up Windows 10 experiences, your app remains unchanged and you can continue to distribute it to your existing Windows 7, Windows Vista, or Windows XP user base. On Windows 10, your app continues to run in full-trust user mode just like it’s doing today.
Checkout this series of short videos published by the Microsoft Virtual Academy. These videos walk you through the entire process of bringing your desktop app to the Universal Windows Platform (UWP).
Here are some reasons to create a Windows App package for your desktop application:
Streamlined deployment. Apps and games that use the bridge have a great deployment experience. This experience ensures that users can confidently install an app and update it. If a user chooses to uninstall the app, it's removed completely with no trace left behind. This reduces time authoring setup experiences and keeping users up-to-date.
Automatic updates and licensing. Your app can participate in the Windows Store's built-in licensing and automatic update facilities. Automatic update is a highly reliable and efficient mechanism, because only the changed parts of files are downloaded.
Increased reach and simplified monetization. Choosing to distribute through the Windows Store expands your reach to millions of Windows 10 users, who can acquire apps, games and in-app purchases with local payment options.
Add UWP features. At your own pace, you can add UWP features to your app's package, like a XAML user-interface, live tile updates, UWP background tasks, app services, and many more.
Broadened use-cases across device. Using the bridge, you can gradually migrate your code to the Universal Windows Platform to reach every Windows 10 device, including phones, Xbox One and HoloLens.
To view a more complete list of benefits, see Desktop Bridge.
Do you plan to publish your app to the Windows app store. If so, start by filling out this form. Microsoft will contact you to start the onboarding process. As part of this process, you'll reserve a name in the store, and obtain information that you'll need to create Windows app package.
Next, review the article Prepare to package your desktop app and address any of the issues that apply to your app before you create a Windows app package for it. You might not have to make many changes to your app before you create the package. However, there are a some situations that might require you to tweak your app before you create a package for it.
Here are some tools that you can use to create a Windows app package for your app.
Desktop App Converter
While the term "Converter" appears in the name of this tool, it doesn't actually convert your app. Your app remains unchanged. However, this tool generates a Windows app package for you. It can be very convenient in cases where your app makes lots of system modifications, or if you have any uncertainty about what your installer does.
The Desktop App Converter also does a few extra things for you. Here's a few of them.
Automatically register your preview handlers, thumbnail handlers, property handlers, firewall rules, URL flags.
Automatically register file type mappings that enable users to group files by using the Kind column in File Explorer.
Register your public COM servers.
Generate a certificate to that you can use to run your app.
Validate your app against Desktop Bridge and Windows Store requirements.
If you like granular control over your conversion, you can create a manifest file, and then run the MakeAppx.exe tool to create your Windows app package.
This approach might make sense if you're familiar with the changes that your installer makes to the system, or if you don't have an installer and the way that you install your app is by physically copying files to a folder location or by using commands like xcopy. Although don't let the absence of an installer move you to manually package your app. You can use the Desktop App Converter to package your app even if you don't have an installer.
This option is similar to the manual option described above except Visual Studio does a few things for you such as generate an app package and the visual assets for your app. Think of Visual Studio as a tool that you can use to manually package your app along with a few extra conveniences.
Several popular third-party products and installers now support the Desktop to UWP Bridge. You can use them to generate MSI installers or app packages with only a few clicks. While we don't produce documentation on how to use these tools, visit their websites to learn more.
Here's a few options:
Caphyon provides a free, GUI-based, desktop app packaging tool that helps you to generate a Windows app package for your application with only a few clicks. It can use any installer; even ones that run in silent mode, and performs a validation check to determine whether the app is suitable for packaging.
You can use Advanced Installer to generate MSI and Windows app packages from existing projects. You can also use Advanced installer to import Windows app packages that you generate by using the Microsoft Desktop App Converter. Once imported, you can maintain them by using visual tools that are specifically designed for UWP apps.
Advanced Installer also provides an extension for Visual Studio 2017 and 2015 that can use to build and debug Desktop Bridge apps.
See this video for a quick overview.
The FireGiant Appx extension lets you create Windows app packages and MSI packages simultaneously from the same WiX source code. Every time you build, you can target Desktop Bridge in Windows 10 with a Windows app package and earlier versions of Windows with MSI.
Because the FireGiant Appx extension doesn't convert your installer by running it, you can maintain your WiX installer without having to repeatedly convert it to Windows app packages. All your users on different versions of Windows get your latest improvements and you don't have to worry about MSI and Windows app packages getting out of sync.
Check out this video and see how in a couple lines of code FireGiant CEO Rob Mensching creates an Appx (Windows app package) version of the popular open-source 7-Zip compression tool and then how he improves both Windows app and MSI packages with changes in the same WiX source code.
InstallAware provides free InstallAware extensions for Visual Studio versions 2012-2017. You can use them to create Windows app packages with a single click directly from the Visual Studio toolbar.
Advanced APPX creation options help you target Windows Store submissions, or produce signed Windows app package binaries for sideload distribution to end-users. You can even build WSA(Windows Server Applications) Installer packages that target deployments to Nano Server all from a single source, and with full support for command line automation, in addition to a GUI.
InstallAware also open sourced an APPX builder library, together with an example command line applet, under the GNU Affero GPL license. These are designed for use with open source platforms such as WiX.
InstallShield provides a single solution to develop MSI and EXE installers, create Universal Windows Platform (UWP) and Windows Server App (WSA) packages, and virtualize applications with minimal scripting, coding and rework.
Prepare for the Windows Store and simplify your software’s installation experience on Windows 10 by building UWP app packages from your existing InstallShield projects. Build both Windows Installer and UWP App Packages to support all of your customers’ desired deployment scenarios. Support Nano Server and Windows Server 2016 deployments by building WSA packages from your existing InstallShield projects.
Develop your installation in modules for easier deployment and maintenance, and then merge the components and dependencies at build time into a single UWP app package for the Windows Store. For direct distribution outside the store, bundle your UWP App Packages and other dependencies together with a Suite/Advanced UI installer.
Learn more in this eBook.
If your app needs to integrate with the system (For example: establish firewall rules), describe those things in the package manifest of your app and the system will do the rest. For most of these tasks, you won't have to write any code at all. With a bit of XML in the manifest, you can do things like start a process when the user logs on, integrate your app into File Explorer, and add your app a list of print targets that appear in other apps.
Once you've packaged your app, you can light it up with features such as live tiles, and push notifications. Some of these capabilities can significantly improve the engagement level of your app and they cost you very little time to add. Some enhancements require a bit more code.
Some Windows 10 experiences (For example: a touch-enabled UI page) must run inside of a modern app container. In general, you should first determine whether you can add your experience by Enhancing your existing desktop application with UWP APIs. If you have to use a UWP component, to achieve the experience, then you can add a UWP project to your solution and use app services to communicate between your desktop app and the UWP component.
You can gradually migrate your older code to UWP while still retaining the ability to run and publish your app on Windows Desktop. Once you’re fully migrated to UWP (and your app no longer contains any WPF/Win32 components), you can reach all Windows devices including phones, Xbox One and HoloLens.
To give your app the best chance of being published on the Windows Store or becoming Windows Certified, validate and test it locally before you submit it for certification.
If you're using the DAC to package your app, you can use the new
-Verify flag to validate your package against the Desktop Bridge and Store requirements. See Package an app, sign the app, and prepare it for store submission.
If you're using Visual Studio, you can validate your app from the Create App Packages wizard. See Create an app package.
To run the tool manually, see Windows App Certification Kit.
To review the list of tests that the Windows App Certification uses to validate your app, see Windows Desktop Bridge app tests.
You can distribute your app by publishing it the Windows Store or by sideloading it onto other systems.
Support and feedback
Find answers to specific questions
Our team monitors these StackOverflow tags.
Give feedback or make feature suggestions
Give feedback about this article
Use the comments section below.
In this section
|Prepare to package an app||Provides a list of items to review before you package your desktop app.|
|Package an app using the Desktop App Converter (Desktop Bridge)||Shows how to run Desktop App Converter.|
|Package an app manually (Desktop Bridge)||Learn how to create an app package and manifest to by hand.|
|Package a .NET app using Visual Studio (Desktop Bridge)||Shows you how to package your desktop app by using Visual Studio.|
|Integrate your app with Windows 10 (Desktop Bridge)||Integrate your app with Windows 10 by using by describing tasks in the package manifest file of your packaging project.|
|Enhance your desktop application for Windows 10||Use UWP APIs to add modern experiences that light up for Windows 10 users.|
|UWP APIs available to a packaged desktop app (Desktop Bridge)||See what UWP APIs are available for your packaged desktop app to use.|
|Extend your desktop application with modern UWP components||Add advanced experiences that must run within a UWP app container. Connect your desktop app with the UWP process by using app services.|
|Run, debug, and test a packaged desktop app (Desktop Bridge)||Explains options for debugging your packaged app.|
|Distribute a packaged desktop app (Desktop Bridge)||See how you can distribute your converted app to users.|
|Behind the scenes of the Desktop Bridge (Desktop Bridge)||Take a deeper dive on how the Desktop to UWP Bridge works under the covers.|
|Known Issues (Desktop Bridge)||Lists known issues with the Desktop to UWP Bridge.|
|Desktop Bridge code samples||Code samples on GitHub demonstrating features of converted apps.|