Choose a UWP version

Each version of Windows 10 has brought new and improved features to the UWP platform. When creating a UWP app in Microsoft Visual Studio, you can choose which version to target. Projects using .NET Standard 2.0 must have a Minimum Version of Build 16299 or later.

Please note that any UWP projects created in current versions of Visual Studio 2017 cannot be opened in Visual Studio 2015.

The following table describes the available versions of Windows 10. Please note that this table only applies for building UWP apps, which are only supported on Windows 10. You cannot develop UWP apps for older versions of Windows, and you must have installed the appropriate build of the SDK in order to target that version.

Version Description
Build 17134 (version 1803) This is the latest version of Windows 10, released in April 2018. Please note that you must be using Visual Studio 2017 in order to target this version of Windows. Some highlighted features from this release include:
* Windows Machine Learning: Windows Machine Learning allows you to build apps that evaluate pre-trained machine learning models locally on your Windows 10 devices. To learn more about the platform, see Windows Machine Learning.
* Fluent Design: New features such as tree view, pull-to-refresh, and navigation view have been added to Windows 10. See the latest at the Fluent design overview.
* Console UWP apps: You can now write C++ /WinRT or /CX UWP console apps that run in a console window such as a DOS or PowerShell console window.
For information on these and many other features added in this release of windows, visit the Dev Center or the more in-depth page on What's new in Windows 10 for developers
Build 16299 (Fall Creators Update, version 1709) This verion of Windows 10 was released in October 2017. Please note that you must be using Visual Studio 2017 in order to target this version of Windows. Some highlighted features from this release include:
* .NET Standard 2.0: Enjoy a massive increase in the number of .NET APIs and incorporate your favorite NuGet packages and third party libraries into .NET Standard. See more details and explore the documentation here. Please note that you must set your minimum version to Build 16299 to access these new APIs.
* Fluent Design: Use light, depth, perspective, and movement to enhance your app and help users focus on important UI elements.
* Conditional XAML: Easily set properties and instantiate objects based on the presence of an API at runtime, enabling your apps to run seamlessly across devices and versions.
For information on these and many other features added in this release of windows, visit the Dev Center or the more in-depth page on What's new in Windows 10 for developers
Build 15063 (Creators Update, version 1703) This version of Windows 10 was released in March 2017. Please note that you must be using Visual Studio 2017 in order to target this version of Windows. Some highlighted features from this release include:
* Ink Analysis: Windows Ink can now categorize ink strokes into either writing or drawing strokes, and recognized text, shapes, and basid layout structures.
* Windows.Ui.Composition APIs: Easily combine and apply animations across your app.
* Live Editing: Edit XAML while your app is running, and see the changes applied in real-time.
For information on these and many other features added in this release of windows, visit the Dev Center or the more in-depth page on What's new in Windows 10 for developers
Build 14393 (Anniversary Update, version 1607) This version of Windows 10 was released in July 2016. Some highlighted features from this release include:
* Windows Ink: New InkCanvas and InkToolbar controls.
* Cortana APIs: Use new Cortana Actions to integrate Cortana support with specific functions of your app.
* Windows Hello: Microsoft Edge now supports Windows Hello, giving web developers access to biometric authentication.
For information on these and many other features added in this release of windows, visit the Dev Center or the more in-depth page on What's new in Windows 10 for developers
Build 10586 (November Update, version 1511) This version of Windows 10 was released in November 2015. Highlighted features include the introduction of ORTC (object real-time communications) APIs for video communication in Microsoft Edge and Providers APIs to enable apps to use Windows Hello face authentication. More information on features introduced in this build.
Build 10240 (Windows 10, version 1507) This is the initial release version of Windows 10, from July 2015. More information on features introduced in this build.

We highly recommend that new developers and developers writing code for a general audience always use the latest build of Windows (16299). Developers writing Enterprise apps should strongly consider supporting an older Minimum Version.

What's different in each UWP version?

New and changed APIs for UWP are available in every successive version of Windows 10. For specific information about what features were added in which version, see What's new for developers in Windows 10.

For reference topics that enumerate all device families and their versions, and all API contracts and their versions, see Device families and API contracts.

Choose which version to use for your app

In the New Universal Windows Project dialog in Visual Studio, you can choose a version for Target Version and for Minimum Version. Additionally, you can change the Target Version and Minimum Version of your UWP app in the application section of the app's Properties.

  • Target Version. This sets the TargetPlatformVersion setting in your project file. It also determines the value of the *TargetDeviceFamily@MaxVersionTested* attribute in your app package manifest. The value you choose specifies the version of the UWP platform that your project is targeting—and therefore the set of APIs available to your app—so we recommend that you choose the most recent version possible. For more info about your app package manifest, and some guidelines around configuring TargetDeviceFamily manually, see TargetDeviceFamily.
  • Minimum Version. This sets the TargetPlatformMinVersion setting in your project file. It also determines the value of the *TargetDeviceFamily@MinVersion* attribute in your app package manifest. The value you choose specifies the minimum version of the UWP platform that your project can work with.

Be aware that you're declaring that your app works on any version of Windows in the range from Minimum Version to Target Version. If those two are the same version then you don't need to do anything special. If they're different then here are some things to be aware of.

  • In your code, you can freely (that is, without conditional checks) call any API that exists in the version specified by Minimum Version.
  • Ensure that you test your code on a device running the Minimum Version, to be sure that it works without requiring APIs only present in the Target Version.
  • The value of Target Version is used to identify all the references (contract winmds) used to compile your project. But those references will enable you to compile your code with calls to APIs that won't necessarily exist on devices that you've declared that you support (via Minimum Version). Therefore, any API that was introduced after Minimum Version will need to be called via adaptive code. For more information about adaptive code, see Version adaptive code.