Desktop Bridge

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.

desktop to UWP bridge image
The Desktop to UWP bridge is the infrastructure that we’ve built into the platform that lets you distribute your Windows Forms, WPF, or Win32 desktop app or game efficiently by using a modern Windows App package.

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.

Note

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).

Benefits

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.

Prepare

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.

Create a Windows app package

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.

See Package an app using the Desktop App Converter (Desktop to UWP Bridge)

Manual packaging

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.

See Package an app manually (Desktop to UWP Bridge).

Visual Studio

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.

See Package a .NET app by using Visual Studio (Desktop to UWP Bridge)

Third-party installer

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:

Advanced Installer

Caphyon, a reliable Microsoft partner for many years, provides innovative solutions that help developers package their Win32/.NET applications by extending the Desktop Bridge support from Microsoft.

desktop to UWP bridge image
They provide 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.

The Desktop App Converter also integrates with Hyper-V and VMware. This means that you can use your own virtual machines, without having to download a matching Docker image that can be over 3GB in size.

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.

Other third-party Installers

These tools also offer excellent support for the Desktop Bridge.

Enhance

Once you've packaged your apps, you can light them 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. In all, you'll have access to a wide range of UWP APIs. for a complete list, see UWP APIs available to Window Desktop Bridge apps.

Check out these samples to get ideas.

If your app needs to integrate with the system (For example: establish firewall rules), you can do a lot of things without having write any code at all. You'll just add some XML to your app package. You can use XML to 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.

See Integrate your app with Windows 10 (Windows Desktop Bridge).

Migrate

Using the bridge, 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.

Debug

You can debug your app by using Visual Studio. See Debug a packaged desktop app (Desktop Bridge).

If you're interested in the internals of how the Desktop Bridge works under the covers, see Behind the scenes of the Desktop Bridge.

Validate

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.

Distribute

You can distribute your app by publishing it to one of our Windows Stores or by sideloading it onto other systems.

See Distribute a packaged desktop app (Desktop Bridge).

Support and feedback

Find answers to specific questions

Our team monitors these StackOverflow tags.

Give feedback or make feature suggestions

See UserVoice

Give feedback about this article

Use the comments section below.

In this section

Topic Description
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) Enhance your packaged desktop app with extensions to enable features like startup tasks and File Explorer integration.
UWP APIs available to a packaged desktop app (Desktop Bridge) See what UWP APIs are available for your packaged desktop app to use.
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.