2015-08-30 22:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Build Instructions (Windows)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-04-19 08:50:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Follow the guidelines below for building **Electron itself**  on Windows, for the purposes of creating custom Electron binaries. For bundling and distributing your app code with the prebuilt Electron binaries, see the [application distribution][application-distribution] guide.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[application-distribution]: ../tutorial/application-distribution.md
							 
						 
					
						
							
								
									
										
										
										
											2013-09-09 15:35:57 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								## Prerequisites
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-03 17:32:07 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  Windows 10 / Server 2012 R2 or higher
							 
						 
					
						
							
								
									
										
										
										
											2022-12-22 11:48:48 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  Visual Studio 2019 (>=16.0.0) to build, but Visual Studio 2022 (>=17.0.0) is preferred - [download VS 2022 Community Edition for free ](https://www.visualstudio.com/vs/ )
							 
						 
					
						
							
								
									
										
										
										
											2022-03-17 05:45:55 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  *  See [the Chromium build documentation ](https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md#visual-studio ) for more details on which Visual Studio
							 
						 
					
						
							
								
									
										
										
										
											2019-09-17 10:23:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  components are required.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  *  If your Visual Studio is installed in a directory other than the default, you'll need to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  set a few environment variables to point the toolchains to your installation path.
							 
						 
					
						
							
								
									
										
										
										
											2022-12-22 11:48:48 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    *  `vs2022_install = DRIVE:\path\to\Microsoft Visual Studio\2022\Community` , replacing `2022`  and `Community`  with your installed versions and replacing `DRIVE:`  with the drive that Visual Studio is on. Often, this will be `C:` .
							 
						 
					
						
							
								
									
										
										
										
											2019-12-05 15:53:50 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    *  `WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10` , replacing `DRIVE:`  with the drive that Windows Kits is on. Often, this will be `C:` .
							 
						 
					
						
							
								
									
										
										
										
											2025-07-09 12:07:24 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Node.js ](https://nodejs.org/download/ ) >= 22.12.0
							 
						 
					
						
							
								
									
										
										
										
											2020-11-02 01:58:14 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Git ](https://git-scm.com )
							 
						 
					
						
							
								
									
										
										
										
											2018-10-22 22:40:39 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  Debugging Tools for Windows of Windows SDK 10.0.15063.468 if you plan on
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								creating a full distribution since `symstore.exe`  is used for creating a symbol
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								store from `.pdb`  files.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  *  Different versions of the SDK can be installed side by side. To install the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  SDK, open Visual Studio Installer, select
							 
						 
					
						
							
								
									
										
										
										
											2021-05-26 14:19:43 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  `Modify`  → `Individual Components` , scroll down and select the appropriate
							 
						 
					
						
							
								
									
										
										
										
											2018-10-22 22:40:39 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  Windows SDK to install. Another option would be to look at the
							 
						 
					
						
							
								
									
										
										
										
											2023-08-10 11:55:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  [Windows SDK and emulator archive ](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/ )
							 
						 
					
						
							
								
									
										
										
										
											2018-10-22 22:40:39 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  and download the standalone version of the SDK respectively.
							 
						 
					
						
							
								
									
										
										
										
											2018-11-19 22:08:25 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  *  The SDK Debugging Tools must also be installed. If the Windows 10 SDK was installed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  via the Visual Studio installer, then they can be installed by going to:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  `Control Panel`  → `Programs`  → `Programs and Features`  → Select the "Windows Software Development Kit" →
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  `Change`  → `Change`  → Check "Debugging Tools For Windows" → `Change` .
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Or, you can download the standalone SDK installer and use it to install the Debugging Tools.
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-04-22 22:53:26 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								If you don't currently have a Windows installation,
							 
						 
					
						
							
								
									
										
										
										
											2023-08-10 11:55:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[developer.microsoft.com ](https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ )
							 
						 
					
						
							
								
									
										
										
										
											2015-08-30 22:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								has timebombed versions of Windows that you can use to build Electron.
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 19:21:12 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-30 22:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Building Electron is done entirely with command-line scripts and cannot be done
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								with Visual Studio. You can develop Electron with any editor but support for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								building with Visual Studio will come in the future.
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-05-09 14:36:42 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								>  [!NOTE]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								>  Even though Visual Studio is not used for building, it's still
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								>  **required** because we need the build toolchains it provides.
 
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-26 11:51:21 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Exclude source tree from Windows Security
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Windows Security doesn't like one of the files in the Chromium source code
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								(see https://crbug.com/441184), so it will constantly delete it, causing `gclient sync`  issues.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You can exclude the source tree from being monitored by Windows Security by
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[following these instructions ](https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26 ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								## Building
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-08 18:15:32 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								See [Build Instructions: GN ](build-instructions-gn.md )
							 
						 
					
						
							
								
									
										
										
										
											2013-08-14 15:43:35 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 17:40:58 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## 32bit Build
 
							 
						 
					
						
							
								
									
										
										
										
											2014-05-05 09:48:44 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-11 19:05:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To build for the 32bit target, you need to pass `target_cpu = "x86"`  as a GN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								arg. You can build the 32bit target alongside the 64bit target by using a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								different output directory for GN, e.g. `out/Release-x86` , with different
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								arguments.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-16 14:50:46 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```powershell
							 
						 
					
						
							
								
									
										
										
										
											2018-09-11 19:05:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ gn gen out/Release-x86 --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x86\""
							 
						 
					
						
							
								
									
										
										
										
											2015-04-16 14:50:46 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The other building steps are exactly the same.
							 
						 
					
						
							
								
									
										
										
										
											2014-05-05 09:48:44 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-26 17:42:12 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Visual Studio project
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-08 18:15:32 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To generate a Visual Studio project, you can pass the `--ide=vs2017`  parameter
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								to `gn gen` :
							 
						 
					
						
							
								
									
										
										
										
											2016-09-21 11:10:52 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```powershell
							 
						 
					
						
							
								
									
										
										
										
											2019-11-07 11:51:44 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ gn gen out/Testing --ide=vs2017
							 
						 
					
						
							
								
									
										
										
										
											2017-03-17 20:44:18 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-04-29 11:07:17 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Troubleshooting
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 19:47:27 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Command xxxx not found
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								If you encountered an error like `Command xxxx not found` , you may try to use
							 
						 
					
						
							
								
									
										
										
										
											2016-05-23 17:32:33 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								the `VS2015 Command Prompt`  console to execute the build scripts.
							 
						 
					
						
							
								
									
										
										
										
											2014-05-18 19:47:27 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-03 20:22:50 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Fatal internal compiler error: C1001
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Make sure you have the latest Visual Studio update installed.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-06-25 09:11:06 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### LNK1181: cannot open input file 'kernel32.lib'
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-30 22:30:36 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Try reinstalling 32bit Node.js.
							 
						 
					
						
							
								
									
										
										
										
											2014-11-13 19:11:56 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### Error: ENOENT, stat 'C:\Users\USERNAME\AppData\Roaming\npm'
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-05-08 00:16:09 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Creating that directory [should fix the problem ](https://stackoverflow.com/a/25095327/102704 ):
							 
						 
					
						
							
								
									
										
										
										
											2014-11-13 19:11:56 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 19:13:40 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```powershell
							 
						 
					
						
							
								
									
										
										
										
											2015-08-31 21:10:48 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ mkdir ~\AppData\Roaming\npm
							 
						 
					
						
							
								
									
										
										
										
											2014-11-13 19:11:56 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2014-12-29 19:09:36 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### node-gyp is not recognized as an internal or external command
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You may get this error if you are using Git Bash for building, you should use
							 
						 
					
						
							
								
									
										
										
										
											2016-05-23 17:32:33 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								PowerShell or VS2015 Command Prompt instead.
							 
						 
					
						
							
								
									
										
										
										
											2018-06-21 12:03:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### cannot create directory at '...': Filename too long
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								node.js has some [extremely long pathnames ](https://github.com/electron/node/tree/electron/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/node_modules/parse-json/node_modules/error-ex/node_modules/is-arrayish ), and by default git on windows doesn't handle long pathnames correctly (even though windows supports them). This should fix it:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ git config --system core.longpaths true
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2019-01-23 21:34:18 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								### error: use of undeclared identifier 'DefaultDelegateCheckMode'
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								This can happen during build, when Debugging Tools for Windows has been installed with Windows Driver Kit. Uninstall Windows Driver Kit and install Debugging Tools with steps described above.
							 
						 
					
						
							
								
									
										
										
										
											2019-03-05 10:40:52 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-08-14 14:23:12 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								### Build Scripts Hang Until Keypress
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								This bug is a "feature" of Windows' command prompt. It happens when clicking inside the prompt window with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								`QuickEdit`  enabled and is intended to allow selecting and copying output text easily.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Since each accidental click will pause the build process, you might want to disable this
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								feature in the command prompt properties.