- Downloads and tools for Windows 10
- Visual Studio Community
- Visual Studio Professional
- Visual Studio Enterprise
- Not using Visual Studio or Windows?
- Developer tools
- Visual Studio Code
- Windows Installer
- Windows Subsystem for Linux
- Windows Package Manager
- Windows Community Toolkit
- Windows Template Studio
- Microsoft Web Template Studio
- Design toolkits for Windows apps
- Windows SDK archive
- Remote Tools for Visual Studio
- Multilingual App Toolkit
- HoloLens emulators and templates
- Debugging tools
- Microsoft PowerToys
- Visual Studio Subscriptions (Formerly MSDN Subscriptions)
- Monetization and Microsoft Store
- Microsoft Store Services SDK
- Windows App Certification Kit
- Microsoft Store badges
- Become a Windows Insider
- Windows 10 SDK
- Getting started
- System requirements
- Supported operating systems
- Hardware requirements
- Additional SDK requirements
- What’s new
- Removal of api-ms-win-net-isolation-l1-1-0.lib
- Removal of irprops.lib
- Removal of wuapicommon.h and wuapicommon.idl
- Windows 10 WinRT API Pack
- Universal C Runtime (UCRT)
- Tools
- Windows App Certification Kit
- Message Compiler (mc.exe)
- Windows Trace Preprocessor (tracewpp.exe)
- TraceLoggingProvider.h
- Signing your apps with Device Guard Signing
- Samples
- Previous SDK versions
- API Light Up
- Release notes & Known Issues
- More resources
- Downloads and tools
- SDK archive
- Windows blog
- Windows lifecycle fact sheet
- Engage customers with the Microsoft Store Services SDK
- Scenarios supported by the Microsoft Store Services SDK
- Prerequisites
- Install the SDK
- Install via MSI
- Install via NuGet
- Add the assembly reference to your project
- Understanding framework packages in the SDK
Downloads and tools for Windows 10
The latest Windows 10 developer tools and SDK resources
Visual Studio Community
Free, fully-featured IDE for students and individual developers.
Visual Studio Professional
Professional developer tools, services, and subscription benefits for small teams.
Visual Studio Enterprise
End-to-end solution that meets the demanding quality and scale needs of teams of all sizes.
Not using Visual Studio or Windows?
Developer tools
Visual Studio Code
A lightweight but powerful source code editor that runs on your desktop and is available for Windows, macOS and Linux.
Windows Installer
Install and configure desktop applications.
Windows Subsystem for Linux
Run native Linux command-line tools, including Bash, directly on Windows.
Windows Package Manager
Try the preview of our new open source package manager for installing applications and tools on Windows 10.
Windows Community Toolkit
Get helper functions, custom controls, and app services to simplify common tasks, building UWP apps for Windows 10.
Windows Template Studio
Quickly build a UWP app using a full-featured wizard-based UI.
Microsoft Web Template Studio
A cross-platform extension for Visual Studio Code that simplifies and accelerates creating new full-stack web applications.
Design toolkits for Windows apps
These toolkits provide controls and layout templates for designing Windows apps.
Windows SDK archive
Find previous releases of the Window SDK and other tools.
Remote Tools for Visual Studio
Debug an application running on a different computer or device.
Multilingual App Toolkit
Streamline your localization workflow during app development.
HoloLens emulators and templates
Build and test applications for mixed reality.
Debugging tools
Get WinDbg, KD, CDB, NTSD as part of a development kit or as a standalone tool set.
Microsoft PowerToys
Set of utilities for power users to tune and streamline their Windows 10 experience for greater productivity.
Visual Studio Subscriptions (Formerly MSDN Subscriptions)
Tools, Azure, software & downloads, services, training and support
Monetization and Microsoft Store
Microsoft Store Services SDK
Integrate customer engagement features with your apps, including targeted notifications and A/B tests.
Windows App Certification Kit
Run these tests before you submit an app to the Store.
Microsoft Store badges
Promote your apps using branded logos and art.
Become a Windows Insider
Join the Windows Insider Program for the latest preview builds of Windows
Windows 10 SDK
The Windows 10 SDK (10.0.19041.0) for Windows 10, version 2004 provides the latest headers, libraries, metadata, and tools for building Windows 10 apps.
Use this SDK to build Universal Windows Platform (UWP) and Win32 applications for Windows 10, version 20H2 and previous Windows releases.
Windows 10, version 20H2 is a scoped set of features for select performance improvements and quality enhancements. Developers should be aware of this release, but no action is necessary at this time.
A new Windows SDK will not be issued to accompany this version of Windows because this release doesn’t introduce new APIs. That means there’s no need to modify your project files or target a new version of Windows, and you should continue to use the Windows 10 SDK for Windows 10, version 2004. When setting the target version for your Windows app, Windows 10 build 19041 is still the most recent target version.
Getting started
You can get the Windows 10 SDK in two ways: install it from this page by selecting the download link or by selecting “Windows 10 SDK (10.0.19041.0)” in the optional components of the Visual Studio 2019 Installer.
Before you install this SDK:
System requirements
The Windows SDK has the following minimum system requirements:
Supported operating systems
- Universal Windows Platform (UWP) app development
- Windows 10 version 1507 or higher: Home, Professional, Education, and Enterprise (LTSB and S are not supported)
- Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2 (Command line only)
- Win32 app development
- Windows 10 version 1507 or higher
- Windows Server 2019, Windows Server 2016, and Windows Server 2012 R2 (Command line only)
- Windows 8.1
- Windows 7 SP1
(Not all tools are supported on earlier operating systems)
Hardware requirements
- 1.6 GHz or faster processor
- 1 GB of RAM
- 4 GB of available hard disk space
Additional SDK requirements
Installation on Windows 8.1 and earlier operating systems requires KB2999226. To install through Windows Update, make sure you install the latest recommended updates and patches from Microsoft Update before you install the Windows SDK.
What’s new
The Windows 10 SDK for Windows 10, version 2004 offers exciting new APIs and updated tools for developing your Windows applications. Learn more about the new features in Windows 10, version 2004.
To see the new APIs introduced with Windows 10, version 2004, see: What’s new in Windows 10 for developers, build 19041.
Removal of api-ms-win-net-isolation-l1-1-0.lib
In this release api-ms-win-net-isolation-l1-1-0.lib has been removed from the Windows SDK. Apps that were linking against api-ms-win-net-isolation-l1-1-0.lib can switch t OneCoreUAP.lib as a replacement.
Removal of irprops.lib
In this release irprops.lib has been removed from the Windows SDK. Apps that were linking against irprops.lib can switch to bthprops.lib as a drop-in replacement.
Removal of wuapicommon.h and wuapicommon.idl
In this release we have moved ENUM tagServerSelection from wuapicommon.h to wupai.h and removed the header. If you would like to use the ENUM tagServerSelection, you will need to include wuapi.h or wuapi.idl.
Windows 10 WinRT API Pack
The Windows 10 WinRT API Pack lets you add the latest Windows Runtime APIs support to your .NET Framework 4.5+ and .NET Core 3.0+ libraries and apps. To access the Windows 10 WinRT API Pack, see the Microsoft.Windows.SDK.Contracts nuget package.
Universal C Runtime (UCRT)
The printf family of functions now conforms with the IEEE 754 rounding rules when printing exactly representable floating-point numbers and will honor the rounding mode requested via calls to fesetround. Legacy behavior is available when linking with legacy_stdio_float_rounding.obj.
Tools
Windows App Certification Kit
In this release of the Windows SDK, several new APIs were added to the Supported APIs list in the App Certification Kit and Windows Store. If there are APIs in the supported list that appear greyed out or disabled in Visual Studio, you can make a small change to your source file, to access them. For more details, see this known issue.
In addition to adding APIs, the following changes have been made to the tests:
Updated tests:
- ValidateContentUriRules will be informational only. Test failures will be presented as warnings.
Removed tests
- WebView WinRT access test for web app
- PackageSizeCheck test for UWP apps
- SupportedApi test for Desktop Bridge apps
- AppContainerCheck test from BinScope for UWP apps
- ServiceWorker check for all app types
New tests
- High-DPI test. A new test for Desktop Bridge apps checks if the app uses DPI aware feature and warns if not specified. This test will encourage you to make your app per-monitor DPI aware. For details on DPI see High DPI Desktop Application Development on Windows.
Message Compiler (mc.exe)
Updates include:
- Now detects the Unicode byte order mark (BOM) in .mc files. If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. Otherwise, if it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. If the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
- Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).
Windows Trace Preprocessor (tracewpp.exe)
Updates include:
- Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP). For backwards-compatibility, if the -UnicodeIgnore command-line parameter is specified, files starting with a UTF-16 BOM will be treated as empty.
- Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP). Use command-line parameters -cp:UTF-8 or -cp:UTF-16 to generate Unicode output files.
- Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding. Earlier versions of tracewpp avoided Unicode conversions and performed text processing assuming a single-byte character set. This may lead to behavior changes in cases where the input files do not conform to the current code page. In cases where this is a problem, consider converting the input files to UTF-8 (with BOM) and/or using the -cp:UTF-8 command-line parameter to avoid encoding ambiguity.
TraceLoggingProvider.h
Updates include:
- Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of TLG_EVENT_WRITE_TRANSFER are linked into the same binary, the TraceLoggingProvider.h helpers will now respect the definition of TLG_EVENT_WRITE_TRANSFER in each .cpp file instead of arbitrarily picking one or the other).
- In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.
Signing your apps with Device Guard Signing
We are making it easier for you to sign your app. Device Guard signing is a Device Guard feature that is available in Microsoft Store for Business and Education. Signing allows enterprises to guarantee every app comes from a trusted source. Our goal is to make signing your MSIX package easier. See the documentation about Device Guard Signing.
Samples
Windows 10 app samples are now available through GitHub. You can browse the code on GitHub, clone a personal copy of the repository from Git, or download a zipped archive of all the samples. We welcome feedback, so feel free to open an issue within the repository if you have a problem or question. These samples are designed to run on desktop, mobile, and future devices that support the Universal Windows Platform (UWP).
Previous SDK versions
Previously released SDKs and emulators, including update details, can be found on the archive page.
API Light Up
When you use new APIs, consider writing your app to be adaptive so that it runs correctly on the widest array of Windows 10 devices. An adapative app «lights up» with new features wherever the devices and Windows version supports them, but otherwise offers only the functionality available on the detected platform version. For implementation details, see the Version adaptive code article.
Release notes & Known Issues
The Windows 10 SDK, Version 2004 SDK servicing update (released 12/16/2020) contains the following fixes. If you encounter these issues, we recommend that you update your version of the SDK as soon as possible to avoid them:
- Resolved unpredictable and hard to diagnose crashes when linking both umbrella libraries and native OS libraries (for example, onecoreuap.lib and kernel32.lib)
- Resolved issue that prevented AppVerifier from working
- Resolved issue that caused WACK to fail with “Task failed to enable HighVersionLie”
For known issues, see the winapi-sdk Q&A.
For new developer feature requests, submit through the Feedback Hub app under the category “Developer Platform/API.”
More resources
Downloads and tools
Get the latest editions of Visual Studio and Windows 10 development tools.
SDK archive
Find previous releases of the Window SDK and other tools.
Windows blog
Stay in touch with the latest SDK flights by subscribing to our blog.
Windows lifecycle fact sheet
Find the key dates for Windows release updates and end of support.
Engage customers with the Microsoft Store Services SDK
The Microsoft Store Services SDK provides features that help you engage with customers in your Universal Windows Platform (UWP) apps, such as sending targeted notifications to your apps and running A/B experiments in your apps. This SDK is an extension for Visual Studio 2015 and later versions of Visual Studio.
To display ads in your UWP apps, use the Microsoft Advertising SDK instead of the Microsoft Store Services SDK. The advertising libraries have been moved from the Microsoft Store Services SDK to the Microsoft Advertising SDK. For more information, see Display ads in your app.
Scenarios supported by the Microsoft Store Services SDK
The Microsoft Store Services SDK currently supports the following scenarios for UWP apps. For API reference documentation, see Microsoft Store Services SDK API reference.
Scenario | Description |
---|---|
Run experiments in your UWP app with A/B testing | Run A/B tests in your Universal Windows Platform (UWP) app to measure the effectiveness of features on some customers before you release the features to everyone. After you define an experiment in Partner Center, use the StoreServicesExperimentVariation class to get variations for your experiment in your app, use this data to modify the behavior of the feature you are testing, and then use the LogForVariation method to send view event and conversion events to Partner Center. Finally, use Partner Center to view the results and manage the experiment. |
Launch Feedback Hub from your UWP app | Use the StoreServicesFeedbackLauncher class in your UWP app to direct your Windows 10 customers to Feedback Hub, where they can submit problems, suggestions, and upvotes. Then, manage this feedback in the Feedback report in Partner Center. |
Configure your UWP app to receive Partner Center push notifications | Use the StoreServicesEngagementManager class in your UWP app to register your app to receive targeted push notifications that you send to your customers using Partner Center. |
Log custom events in your UWP app for the Usage report in Partner Center | Use the StoreServicesCustomEventLogger class in your UWP app to log custom events that are associated with your app in Partner Center. Then, review the total occurrences for your custom events in the Custom events section of the Usage report in Partner Center. |
Prerequisites
The Microsoft Store Services SDK requires:
- Visual Studio 2015 or a later version.
- Visual Studio Tools for Universal Windows Apps installed with your version of Visual Studio.
Install the SDK
There are two options for installing the Microsoft Store Services SDK on your development computer:
- MSI installerВ В You can install the SDK via the MSI installer available here.
- NuGet packageВ В You can install the SDK as a NuGet package.
Microsoft periodically releases new versions of the Microsoft Store Services SDK with performance improvements and new features. If you have existing projects that use the SDK and you want to use the latest version, download and install the latest version of the SDK on your development computer.
Install via MSI
To install the Microsoft Store Services SDK via the MSI installer:
Close all instances of Visual Studio.
If you previously installed the Microsoft Store Engagement and Monetization SDK, Universal Ad Client SDK, or Ad Mediator extension, uninstall these SDKs now. Optionally, open a Command Prompt window and run these commands to clean out any older SDK versions that may have been installed with Visual Studio, but which may not appear in the list of installed programs on your computer:
Download and install the Microsoft Store Services SDK. It may take a few minutes to install. Be sure and wait until the process has finished.
Restart Visual Studio.
If you have an existing project that references libraries from any earlier version of the Microsoft Store Services SDK, Microsoft Advertising SDK, Universal Ad Client SDK, or Microsoft Store Engagement and Monetization SDK, we recommend that you open your project in Visual Studio and clean and rebuild your project (in Solution Explorer, right-click your project node and choose Clean, and then right-click your project node again and choose Rebuild).
Otherwise, if you are using the SDK for the first time in your project, you are now ready to add the assembly reference to your project.
Install via NuGet
To install the Microsoft Store Services SDK libraries via NuGet:
Close all instances of Visual Studio.
If you previously installed the Microsoft Store Engagement and Monetization SDK, Universal Ad Client SDK, or Ad Mediator extension, uninstall these SDKs now. Optionally, open a Command Prompt window and run these commands to clean out any older SDK versions that may have been installed with Visual Studio, but which may not appear in the list of installed programs on your computer:
Start Visual Studio and open the project in which you want to use the Microsoft Store Services SDK.
If your project already includes library references from an earlier MSI installation of the SDK, remove these references from your project. These references will have warning icons next to them because the libraries they reference were removed in the previous steps.
In Visual Studio, click Project and Manage NuGet Packages.
In the search box, type Microsoft.Services.Store.Engagement and install the Microsoft.Services.Store.Engagement package. When the package is done installing, save your solution.
If the Output window reports an Install-Package error that indicates the specified path is too long, you may need to configure NuGet to extract packages to an alternate location with a shorter path than the default location. To do this, add the repositoryPath value to a nuget.config file on your computer and assign it to a short folder path where NuGet packages can be extracted. For more information, see this article in the NuGet documentation. Alternatively, you can try moving your Visual Studio project to an alternate folder with a shorter path. The problem could also be caused by your global packages path being too long. In this case, add the globalPackagesFolder value into your nuget.config file.
Close the Visual Studio solution that contains your project and then reopen the solution.
If your project already references libraries from an earlier version of the Microsoft Store Services SDK that was installed via NuGet and you have updated your project to a newer release of the SDK, we recommend that you clean and rebuild your project (in Solution Explorer, right-click your project node and choose Clean, and then right-click your project node again and choose Rebuild).
Otherwise, if you are using the SDK for the first time in your project, you are now ready to add the assembly reference to your project.
Add the assembly reference to your project
After you install the Microsoft Store Services SDK via the MSI installer or NuGet, follow these instructions to reference the SDK assembly in your UWP project.
Open your project in Visual Studio.
If your project is a JavaScript app that targets Any CPU, update your project to use an architecture-specific build output (for example, x86).
In Solution Explorer, right click References and select Add Reference…
In Reference Manager, expand Universal Windows, click Extensions, and then select the check box next to Microsoft Engagement Framework. This enables you to use the APIs in the Microsoft.Services.Store.Engagement namespace.
Click OK.
If you installed the SDK libraries via NuGet, your project will contain a Microsoft.Services.Store.Engagement reference. The Microsoft.Services.Store.Engagement reference represents the NuGet package (rather than the libraries in it), and you can ignore it.
Understanding framework packages in the SDK
The Microsoft.Services.Store.Engagement.dll library in the Microsoft Store Services SDK is configured as a framework package. This library contains the APIs in the Microsoft.Services.Store.Engagement namespace.
Because this library is a framework package, this means that after a user installs a version of your app that uses this library, this library is automatically updated on their device through Windows Update whenever we publish a new version of the library with fixes and performance improvements. This helps to ensure that your customers always have the latest available version of the library installed on their devices.
If we release a new version of the SDK that introduces new APIs or features in this library, you will need to install the latest version of the SDK to use those features. In this scenario, you would also need to publish your updated app to the Store.