跳到主要内容

构建说明 (Windows)

按照以下指南在 Windows 上构建 Electron 本身,用于创建自定义 Electron 二进制文件。 对于使用预构建的 Electron 二进制文件打包和分发您的应用程序代码,请参阅应用程序分发指南。

前提条件

  • Windows 10 / Server 2012 R2 或更高版本
  • 构建需要 Visual Studio 2019 (>=16.0.0),但首选 Visual Studio 2022 (>=17.0.0) - 免费下载 VS 2022 Community Edition
    • 有关所需 Visual Studio 组件的更多详细信息,请参阅Chromium 构建文档
    • 如果您的 Visual Studio 安装在非默认目录中,则需要设置一些环境变量以将工具链指向您的安装路径。
      • vs2022_install = DRIVE:\path\to\Microsoft Visual Studio\2022\Community,将 2022Community 替换为您安装的版本,并将 DRIVE: 替换为 Visual Studio 所在的驱动器。 通常,这将是 C:
      • WINDOWSSDKDIR = DRIVE:\path\to\Windows Kits\10,将 DRIVE: 替换为 Windows Kits 所在的驱动器。 通常,这将是 C:
  • Node.js
  • Git
  • 如果您计划创建完整的分发包,则需要 Windows SDK 10.0.15063.468 的 Windows 调试工具,因为 symstore.exe 用于从 .pdb 文件创建符号存储。
    • 不同版本的 SDK 可以并行安装。 要安装 SDK,请打开 Visual Studio 安装程序,选择 修改单个组件,向下滚动并选择相应的 Windows SDK 进行安装。 另一个选择是查看Windows SDK 和模拟器存档并分别下载独立版本的 SDK。
    • 还必须安装 SDK 调试工具。 如果 Windows 10 SDK 是通过 Visual Studio 安装程序安装的,则可以通过以下步骤安装:转到 控制面板程序程序和功能 → 选择“Windows Software Development Kit” → 更改更改 → 勾选“Debugging Tools For Windows” → 更改。 或者,您可以下载独立的 SDK 安装程序并使用它来安装调试工具。

如果您当前没有 Windows 安装,developer.microsoft.com 提供有时限的 Windows 版本,您可以使用这些版本来构建 Electron。

构建 Electron 完全通过命令行脚本完成,不能使用 Visual Studio。 您可以使用任何编辑器开发 Electron,但将来会支持使用 Visual Studio 进行构建。

注意: 即使 Visual Studio 不用于构建,它仍然是必需的,因为我们需要它提供的构建工具链。

将源代码树从 Windows 安全中心排除

Windows 安全中心不喜欢 Chromium 源代码中的某个文件(参见 https://crbug.com/441184),因此它会不断删除该文件,导致 gclient sync 问题。 您可以按照这些说明将源代码树从 Windows 安全中心的监控中排除。

构建

请参阅构建说明:GN

32 位构建

要为 32 位目标构建,您需要将 target_cpu = "x86" 作为 GN 参数传递。 您可以通过为 GN 使用不同的输出目录(例如 out/Release-x86)和不同的参数来同时构建 32 位目标和 64 位目标。

$ gn gen out/Release-x86 --args="import(\"//electron/build/args/release.gn\") target_cpu=\"x86\""

其他构建步骤完全相同。

Visual Studio 项目

要生成 Visual Studio 项目,可以将 --ide=vs2017 参数传递给 gn gen

$ gn gen out/Testing --ide=vs2017

故障排除

未找到命令 xxxx

如果您遇到类似 未找到命令 xxxx 的错误,您可以尝试使用 VS2015 Command Prompt 控制台来执行构建脚本。

致命内部编译器错误:C1001

确保您安装了最新的 Visual Studio 更新。

LNK1181: 无法打开输入文件 'kernel32.lib'

尝试重新安装 32 位 Node.js。

错误:ENOENT, stat 'C:\Users\USERNAME\AppData\Roaming\npm'

创建该目录应该可以解决问题

$ mkdir ~\AppData\Roaming\npm

node-gyp 不是内部或外部命令

如果您使用 Git Bash 进行构建,可能会出现此错误,应改用 PowerShell 或 VS2015 Command Prompt。

无法在 '...' 创建目录:文件名过长

node.js 有一些非常长的路径名,并且默认情况下,Windows 上的 git 无法正确处理长路径名(即使 Windows 支持它们)。 这应该可以解决问题。

$ git config --system core.longpaths true

错误:使用了未声明的标识符 'DefaultDelegateCheckMode'

在构建期间,如果 Debugging Tools for Windows 与 Windows Driver Kit 一起安装,则可能会发生这种情况。 卸载 Windows Driver Kit 并按照上述步骤安装 Debugging Tools。

构建脚本挂起,直到按下按键

这个 bug 是 Windows 命令提示符的一个“特性”。 当在启用 QuickEdit 的提示符窗口内单击时会发生这种情况,其目的是为了方便选择和复制输出文本。 由于每次意外单击都会暂停构建过程,您可能需要在命令提示符属性中禁用此功能。