Tell us about your PDF experience.
Set up your development environment
on Windows
Article + 11/29/2022 + 3 minutes to read
Windows invites you to code as you are. Use whatever coding language or framework
you prefer - whether developing with tools on Windows or with Linux tools on the
Windows Subsystem for Linux, this guide will help you get set up and install what you
need to start coding, debugging, and accessing services to put your work into
production.
Development paths
Get started with JavaScript
Get started with JavaScript by setting up your development environment on Windows or
Windows Subsystem for Linux and install Node js, React, Vue, Express, Gatsby, Nextjs, or
Nuxt,js.
Get started with Python
Install Python and get your development environment setup on Windows or Windows
Subsystem for Linux.Ga
im!
Get started with Android
Install Android Studio, or choose a cross-platform solution like Xamarin, React, or
Cordova, and get your development environment setup on Windows.
Get started with Windows Desktop
Get started building desktop apps for Windows using the Windows App SDK, UWP,
Win32, WPF, Windows Forms, or updating and deploying existing desktop apps with
MSIX and XAML Islands.
Get started with C++ and C
Get started with C++, C, and assembly to develop apps, services, and tools.Get started with C#
Get started building apps using C# and .NET Core.
Get started with F#
Get started building apps using F# and .NET Core.
Get started with Rust
Get started programming with Rust—including how to set up Rust for Windows by
consuming the windows crate.Get started with PowerShell
Get started with cross-platform task automation and configuration management using
PowerShell, a command-line shell and scripting language.
docker
Get started with Docker Desktop for Windows
Create remote development containers with support from Visual Studio, VS Code, .NET,
Windows Subsystem for Linux, or a variety of Azure services
Get started with Blazor
Get started with Blazor, a client-side UI framework within ASP.NET Core. Use HTML, CSS,
and C# (rather than JavaScript) to create UI components and single page applications
for the web.
Tools and platformsUse your fav
dual-boot).
Linux distribution fully integrated with Windows (no more need for
Customize your terminal environment to work with multiple command line shells.Use the winget.exe client, a comprehensive package manager, with your command line
to install applications on Windows.
Tune and streamline your Windows experience for greater productivity with this set of
power user utilities.Visual Studio Code
VS Code
A lightweight source code editor with built-in support for JavaScript, TypeScript, Nodejs,
a rich ecosystem of extensions (C++, C#, Java, Python, PHP, Go) and runtimes (such as
NET and Unity)
Install VS Code
Visual Studio
Visual Studio
An integrated development environment that you can use to edit, debug, build code,
and publish apps, including compilers, intellisense code completion, and many more
features.
Install Visual StudioAzure
A complete cloud platform to host your existing apps and streamline new development.
Azure services integrate everything you need to develop, test, deploy, and manage your
apps.
Set up an Azure account
NET
‘An open source development platform with tools and libraries for building any type of
app, including web, mobile, desktop, gaming, loT, cloud, and microservices.
Install NET
Run Windows and Linux
Windows Subsystem for Linux (WSL) allows developers to run a Linux operating system
right alongside Windows. Both share the same hard drive (and can access each other's
files), the clipboard supports copy-and-paste between the two naturally, there's no needfor dual-booting. WSL enables you to use BASH and will provide the kind of
environment most familiar to Mac users.
Learn more in the WSL docs.
https://learn microsoft.com/shows/One-Dev-Minute/What-can-|-do-with-WSL--One-
Dev-Question/player?format=ny
You can also use Windows Terminal to open all of your favorite command line tools in
the same window with multiple tabs, or in multiple panes, whether that's PowerShell,
Windows Command Prompt, Ubuntu, Debian, Azure CLI, Oh-my-Zsh, Git Bash, or all of
the above.
Learn more in the Windows Terminal docs.
https://learn.microsoft.com/shows/One-Dev-Minute/What-are-the-main-features-of-
the-new-Terminal--One-Dev-Question/player?format=ny
Transitioning between Mac and Windows
Check out our guide to transitioning between between a Mac and Windows (or
Windows Subsystem for Linux) development environment. It can help you map the
difference between
Keyboard shortcuts
Trackpad shortcuts
Terminal and shell tools
Apps and u
Game development documentation
© Microsoft's Game Dev documentationWindows Subsystem for Linux
Documentation
Article + 06/27/2022 + 2 minutes to read
Windows Subsystem for Linux (WSL) lets developers run a GNU/Linux environment --
including most command-line tools, utilities, and applications -- directly on Windows,
unmodified, without the overhead of a traditional virtual machine or dual-boot setup.
ieee
Learn more
What is the Windows Subsystem for Linux (WSL)?
What's new with WSL 2?
Comparing WSL 1 and WSL 2
Frequently Asked Questions
Get started
Install WSL
Install Linux on Windows Server
Manual install steps
Best practices for setting up a WSL development environment
Try WSL preview features by joining the
Windows Insiders Program
To try the most recent features or updates to WSL, join the Windows Insiders
Program &, Once you have joined Windows Insiders, you can choose the channel you
would like to receive preview builds from inside the Windows settings menu. You can
choose from:
* Dev channel: Most recent updates, but low stability.
* Beta channel: Ideal for early adopters, more reliable builds than the Dev channel.
* Release Preview channel: Preview fixes and key features on the next version of
Windows just before its available to the general public.Team blogs
* Overview post with a collection of videos and blogs
* Command-Line blog (Active)
‘* Windows Subsystem for Linux Blog (Historical)
Provide feedback
© GitHub issue tracker: WSL?
© GitHub issue tracker: WSL documentation 7
Related videos
WSL BASICS
1. What is the Windows Subsystem for Linux (WSL)? | One Dev Question (0:40)
2. I'm a Windows developer. Why should | use WSL? |@ One Dev Question (0:58)
3. I'm a Linux developer. Why should | use WSL? | One Dev Question (1:04)
4, What is Linux? | One Dev Question (1:31)
5. What is a Linux distro? | One Dev Question (1:04)
6. How is WSL different than a virtual machine or dual booting? ¢ | One Dev
Question
7. Why was the Windows Subsystem for Linux created? | One Dev Question (1:14)
8. How do | access files on my computer in WSL? & | One Dev Question (1:41)
9. How is WSL integrated with Windows? | One Dev Question (1:34)
10. How do I configure a WSL distro to launch in the home directory in Terminal? |
One Dev Question (0:47)
11. Can | use WSL for scripting? | One Dev Question (1:04)
12, Why would I want to use Linux tools on Windows? | One Dev Question (1:20)
13. In WSL, can | use distros other than the ones in the Microsoft Store? | One Dev
Question (1:03)
WSL DEMOS
1. WSL2: Code faster on the Windows Subsystem for Linux! | Tabs vs Spaces (13:42)
2. WSL: Run Linux GUI Apps @ | Tabs vs Spaces (17:16)
3. WSL 2: Connect USB devices « | Tabs vs Spaces (10:08)
4. GPU Accelerated Machine Learning with WSL 2. | Tabs vs Spaces (16:28)
5. Visual Studio Code: Remote Dev with SSH, VMs, and WSL®’ | Tabs vs Spaces (29:33)
6. Windows Dev Tool Updates: WSL, Terminal, Package Manager, and more | Tabs
vs Spaces (20:46)7. Build NodeJS apps with WSL | Highlight (3:15)
8. New memory reclaim feature in WSL 2 | Demo (6:01)
9. Web development on Windows (in 2019) ¢ | Demo (10:39)
WSL DEEP DIVES
1. WSL on Windows 11 - Demos with Craig Loewen and Scott Hanselman |
Windows Wednesday (35:48)
2. WSL and Linux Distributions - Hayden Barnes and Kayla Cinnamon | Windows
Wednesday (37:00)
3. Customize your terminal with Oh My Posh and WSL Linux distros | Windows
Wednesday (33:14)
4. Web dev Sarah Tamsin and Craig Loewen chat about web development, content
creation, and WSL® | Dev Perspectives (12:22)
5. How WSL accesses Linux files from Windows® | Deep dive (24:59)
6. Windows subsystem for Linux architecture: a deep dive & | Build 2019 (58:10)What is Windows Terminal?
Article + 12/21/2022 + 2 minutes to read
Windows Terminal is a modern host application for the command-line shells you already
love, like Command Prompt, PowerShell, and bash (via Windows Subsystem for Linux
(WSL). Its main features include multiple tabs, panes, Unicode and UTF-8 character
support, a GPU accelerated text rendering engine, and the ability to create your own
themes and customize text, colors, backgrounds, and shortcuts.
Install Windows Terminal
https://www.microsoft.com/en-us/videoplayer/embed/RWHAdS?postislIMsg=true
© Note
For more general info, check out Scott Hanselman’s article: What's the difference
between a console, a terminal, and a shell? or Rich Turner's video What is a
command-line shell? 2
Multiple profiles supporting a variety of
command line applications
Any application that has a command line interface can be run inside Windows Terminal.
This includes everything from PowerShell and Command Prompt to Azure Cloud Shell
and any WSL distribution such as Ubuntu or Oh-My-Zsh
Customized schemes and configurations
You can configure your Windows Terminal to have a variety of color schemes and
settings. To learn how to customize your prompt with cool themes, see Tutorial: Set up a
custom prompt for PowerShell or WSL with Oh My Posh To learn how to make your own
color scheme, visit the Color schemes page.
Custom actions
There are a variety of custom commands you can use in Windows Terminal to have it
feel more natural to you. If you don't like a particular keyboard shortcut, you can changeit to whatever you prefer.
For example, the default shortcut to copy text from the command line is (cteleshiftsc].
You can change this to (ctriva) or whatever you prefer. To open a new tab, the default
shortcut is (cerisshiftrt), but maybe you want to change this to (ctriv2}, The default
shortcut to flip between the tabs you have open is (ctristab], this could be changed to
ctri+- | and used to create a new tab instead.
You can learn about customizing shortcuts on the Actions page.
Unicode and UTF-8 character support
Windows Terminal can display Unicode and UTF-8 characters such as emoji and
characters from a variety of languages.
GPU accelerated text rendering
Windows Terminal uses the GPU to render its text, thus providing improved
performance over the default Windows command line experience.
Background image support
You can have background images and gifs inside your Windows Terminal window.
Information on how to add background images to your profile can be found on the
Profile - Appearance page.
Command line arguments
You can set Windows Terminal to launch in a specific configuration using command line
arguments. You can specify which profile to open in a new tab, which folder directory
should be selected, open the terminal with split window panes, and choose which tab
should be in focus.
For example, to open Windows Terminal from PowerShell with three panes, with the left
pane running a Command Prompt profile and the right pane split between your
PowerShell and your default profile running WSL, enter:
PowerShell
wt -p “Command Prompt!
H wsl.exe
3 split-pane -p “Windows PowerShell” *; split-pane -Learn how to set up command-line arguments on the Command line arguments pageWindows Package Manager
Article + 02/22/2022 + 2 minutes to read
Windows Package Manager is a comprehensive package manager solution that consists
of a command line tool and set of services for installing applications on Windows 10
and Windows 11
Windows Package Manager for developers
Developers use the winget command line tool to discover, install, upgrade, remove and
configure a curated set of applications. After it is installed, developers can access winget
via the Windows Terminal, PowerShell, or the Command Prompt.
For more information, see Use the winget tool to install and manage applications.
Windows Package Manager for ISVs
Independent Software Vendors (ISVs) can use Windows Package Manager as a
distribution channel for software packages containing their tools and applications. To
submit software packages (containing .msix, .msi, or .exe installers) to Windows Package
Manager, we provide the open source Microsoft Community Package Manifest
Repository on GitHub where ISVs can upload package manifests to have their software
packages considered for inclusion with Windows Package Manager. Manifests are
automatically validated and may also be reviewed manually.
For more information, see Submit packages to Windows Package Manager.
Understanding package managers
A package manager is a system or set of tools used to automate installing, upgrading,
configuring and using software. Most package managers are designed for discovering
and installing developer tools.
Ideally, developers use a package manager to specify the prerequisites for the tools they
need to develop solutions for a given project. The package manager then follows the
declarative instructions to install and configure the tools. The package manager reduces
the time spent getting an environment ready, and it helps ensure the same versions of
packages are installed on their machine.Third party package managers can leverage the Microsoft Community Package Manifest
Repository to increase the size of their software catalog.
Related topics
© Use the winget tool to install and manage software packages
* Submit packages to Windows Package ManagerUse the winget tool to install and
manage applications
Article + 12/14/2022 + § minutes to read
The winget command line tool enables users to discover, install, upgrade, remove and
configure applications on Windows 10 and Windows 11 computers. This tool is the
client interface to the Windows Package Manager service.
Install winget
Windows Package Manager winget command-line tool is bundled with Windows 11 and
modern versions of Windows 10 by default as the App Installer.
Ifyou are running an earlier version of Windows and the App Installer is not installed,
you can get App Installer from the Microsoft Store’. Ifit’s already installed, make sure it
is updated with the latest version.
App Installer includes the production version of the winget tool.
© Note
The winget command line tool is only supported on Windows 10 1709 (build
16299) or later at this time.
Install winget preview version [Developers Only]
To try the latest Windows Package Manager features, install the latest preview build of
the winget command line tool in one of the following ways
* Use a Microsoft Account (MSA), work, school or Azure Active Directory (AAD)
account to sign up for the Windows Insider Dev Channel’.
* Use a Microsoft Account (MSA) to sign up for the Windows Package Manager
Insiders Program.
* Install the Windows Desktop App Installer package located on the Releases page
for the winget repository. Installing this package will give you the WinGet client,
but it will not enable automatic updates from the Microsoft Store.Install winget on Windows Sandbox
Windows Sandbox provides a lightweight desktop environment to safely run
applications in isolation. Software installed inside the Windows Sandbox environment
remains "sandboxed" and runs separately from the host machine. Windows Sandbox
does not include winget, nor the Microsoft Store app, so you will need to download the
latest winget package from the winget releases page on GitHub.
To install winget on Windows Sandbox, follow these steps from a Windows PowerShell
command prompt:
PowerShell
$ProgressPreference='Silent’
Invoke-WebRequest -Uri https: //github.com/microsoft /winget-
cli/releases/download/v1.3.2691/Microsoft .DesktopAppInstaller_8wekyb3d8bbwe.
msixbundle -OutFile .\MicrosoftDesktopAppInstaller_swekyb3d8bbwe.msixbundle
Invoke-WebRequest -Uri.
https: //aka.ms/
[email protected] -OutFile
Microsoft. VCLibs.x64.14.00, Desktop. appx
Add-AppxPackage Microsoft. VCLibs.x64.14.00.Desktop.appx
‘Add-AppxPackage Microsoft .DesktopAppInstaller_swekyb3d8bbwe.msixbundle
For more information on Windows Sandbox, including how to install a sandbox and
what to expect from it's usage, see the Windows Sandbox docs.
Administrator considerations
Installler behavior can be different depending on whether you are running winget with
administrator privileges.
© When running winget without administrator privileges, some applications may
require elevation to install. When the installer runs, Windows will prompt you to
elevate. If you choose not to elevate, the application will fail to install.
© When running
elevation prompts if the application requires it. Always use caution when running
get in an Administrator Command Prompt, you will not see
your command prompt as an administrator, and only install applications you trust.
Use winget
After App Installer is installed, you can run winget by typing 'winget' from a Command
Prompt.One of the most common usage scenarios is to search for and install a favorite tool
1.To for a tool, type winget search
2. After you have confirmed that the tool you want is available, you can the
tool by typing winget install . The winget tool will launch the installer
and install the application on your PC.
Wd FoweStal wend - 0 x
Cer rere
pa
NS ee
once
3. In addition to install and search,
\get provides a number of other commands
that enable you to on applications, , and
To get a complete list of commands, type: winget --help
Wd PowerShell mone - 0 x
eC
Siete oes
es
eae eo
ey
Saeco
eres oO ee coe
ewes cee ee
eee CMe eer ar
Some users have reported with the client not being on their PATHCommands
The current preview of the winget tool supports the following commands,
Command Description
info Displays metadata about the system (version numbers, architecture, log location,
etc). Helpful for troubleshooting.
install Installs the specified application.
show Displays details for the specified application.
source ‘Adds, removes, and updates the Windows Package Manager repositories accessed
by the winget tool.
search Searches for an application.
list Display installed packages.
upgrade Upgrades the given package.
uninstall Uninstallls the given package.
hash Generates the SHA256 hash for the installer.
validate Validates a manifest file for submission to the Windows Package Manager
repository.
settings Open settings.
features Shows the status of experimental features.
‘export Exports a list of the installed packages.
import Installs all the packages in a file.
Options
The winget tool supports the following options.
Option
version
--info
Descri
Returns the current version of winget.
Provides you with all detailed information on winget, including the links to the license,
privacy statement, and configured group policies.Option Description
Shows additional help for winget.
help
Supported installer formats
The winget tool supports the following types of installers
EXE (with Silent and SilentWithProgress flags)
* INNO
* NULLSOFT
* MSI
© APPX
© MSIX
* BURN
© PORTABLE
Scripting winget
You can author batch scripts and PowerShell scripts to install multiple applications.
cw
@echo off
Echo Install Powertoys and Terminal
REM Powertoys
winget install Microsoft.Powertoys
if MERRORLEVEL% EQU @ Echo Powertoys installed successfully.
REM Terminal
winget install Microsoft .WindowsTerminal
if MERRORLEVEL% EQU @ Echo Terminal installed successfully. XERRORLEVEL%
© Note
When scripted, winget will launch the applications in the specified order. When an
installer returns success or failure, winget will launch the next installer. If an installer
launches another process, it is possible that it will return to winget prematurely.
This will cause winget to install the next installer before the previous installer has
completed.Debugging and troubleshooting
winget provides logging to help diagnose issues. For troubleshooting and details on
logging, see Debugging and troubleshooting.
Missing tools
If the community repository does not include your tool or application, please submit a
package to our repository“. By adding your favorite tool, it will be available to you and
everyone else.
Customize winget settings
You can configure the winget command line experience by modifying the settings,json
file. For more information, see https://aka.ms/winget-settings . Note that the settings
are still in an experimental state and not yet finalized for the preview version of the tool
Open source details
The winget tool is open source software available on GitHub in the repo
https://github.com/microsoft/winget-cli/@. The source for building the client is located
in the src folder?
The source for winget is contained in a Visual Studio 2019 C++ solution. To build the
solution correctly, install the latest Visual Studio with the C++ workload?
We encourage you to contribute to the winget source on GitHub. You must first agree
to and sign the Microsoft CLA.
Troubleshooting
The winget-cli repo maintains a list of common issues and common errors, along with
recommendations on how to resolve:
* common issues -- not recognized, failed to run, App Installer version or PATH
variable need updating
* common errors -- Error 0x801901a0, 0x80d03002, 0x80070490 7Debugging and troubleshooting issues
with the winget tool
Article + 11/29/2021 + 2 minutes to read
When Windows Package Manager is installing, searching or listing applications,
sometimes it is necessary to look at the log files to understand the behavior better.
Logs
Windows Package Manager by default creates log files when executing commands.
These log files are located here:
MD
> Logs:
XLOCALAPPOATAX\Packages\Microsoft.DesktopAppinstaller_8wekyb3d8bbwe\Localsta
te\DiagoutputDir
By navigating to this folder you will find the logs the winget tool has written
--verbose-logs
Ifyou need more comprehensive log files, that provide the complete communication
with the CDNs and sources, include --verbose-logs on the command line as well. Here
are some examples of using the --verbose-logs option:
cD
> winget install vscode --verbose-logs
> winget search -n visual --verbose- logs
> winget source add -n mysource -t Microsoft.REST -a https: //uww.contoso.org
--verbose-logs
Known issues
A list of known issues with sources and behaviors is kept up to date in the Windows
Package Manager Client repository @. If you encounter issues when using the winget
tool, go here for troubleshooting.export command (winget)
Article » 03/04/2022 + 2 minutes to read
The export command of the winget tool exports a JSON file of apps to a specified file.
The export command uses JSON as the format. The JSON schema used by winget can
be found here.
The export combined with the import command allows you to batch install applications
on your PC.
The export command is often used to create a file that you can share with other
developers, or for use when restoring your build environment.
Usage
winget export [-o]