Electron.NET 打包与分发:使用electron-builder创建安装程序

Electron.NET 打包与分发:使用electron-builder创建安装程序

【免费下载链接】Electron.NET Electron.NET是一个将.NET Core与Electron框架结合的项目,允许使用C#/.NET来开发跨平台桌面应用程序。其特点在于开发者可以利用.NET生态系统的强大功能和C#语言特性,同时享有Electron带来的原生桌面GUI开发能力。 【免费下载链接】Electron.NET 项目地址: https://gitcode.com/gh_mirrors/el/Electron.NET

概述

Electron.NET 集成了 Visual Studio 的发布系统,通过 electron-builder 创建可分发的 Electron 软件包。该过程利用 .NET 的构建系统,同时自动生成必要的 Electron 配置文件。ASP.NET 应用和控制台应用的发布过程略有不同:ASP.NET 应用使用 SelfContained=true 进行文件夹发布,控制台应用使用 SelfContained=false 进行文件夹发布。

创建发布配置文件

Properties/PublishProfiles/ 目录下添加发布配置文件。

ASP.NET 应用配置文件(Windows)

win-x64.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <Configuration>Release</Configuration>
    <Platform>Any CPU</Platform>
    <PublishDir>publish\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\</PublishDir>
    <PublishProtocol>FileSystem</PublishProtocol>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <SelfContained>true</SelfContained>
    <PublishSingleFile>false</PublishSingleFile>
  </PropertyGroup>
</Project>

ASP.NET 应用配置文件(Linux)

linux-x64.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <Configuration>Release</Configuration>
    <Platform>Any CPU</Platform>
    <PublishDir>publish\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\</PublishDir>
    <PublishProtocol>FileSystem</PublishProtocol>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
    <SelfContained>true</SelfContained>
    <PublishSingleFile>false</PublishSingleFile>
  </PropertyGroup>
</Project>

控制台应用配置文件(Windows)

win-x64.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <Configuration>Release</Configuration>
    <Platform>Any CPU</Platform>
    <PublishDir>publish\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\</PublishDir>
    <PublishProtocol>FileSystem</PublishProtocol>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <SelfContained>false</SelfContained>
    <PublishSingleFile>false</PublishSingleFile>
    <PublishReadyToRun>false</PublishReadyToRun>
  </PropertyGroup>
</Project>

控制台应用配置文件(Linux)

linux-x64.pubxml:

<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <Configuration>Release</Configuration>
    <Platform>Any CPU</Platform>
    <PublishDir>publish\$(Configuration)\$(TargetFramework)\$(RuntimeIdentifier)\</PublishDir>
    <PublishProtocol>FileSystem</PublishProtocol>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeIdentifier>linux-x64</RuntimeIdentifier>
    <SelfContained>false</SelfContained>
    <PublishSingleFile>false</PublishSingleFile>
  </PropertyGroup>
</Project>

配置 Electron Builder

ElectronNET.Core 会在 Properties\electron-builder.json 下自动添加默认的 electron-builder.json 文件。以下是一个示例配置:

src/ElectronNET.ConsoleApp/Properties/electron-builder.json

{
  "$schema": "https://raw.githubusercontent.com/electron-userland/electron-builder/refs/heads/master/packages/app-builder-lib/scheme.json",
  "compression": "maximum",
  //"afterPack": "bin/Assets/afterPack.js",
  //"beforePack": "bin/Assets/beforePack.js",
  "buildNumber": "",
  "linux": {
    "target": [
      "tar.xz"
      //"AppImage",
      //"rpm",
      //"deb",
      //"pacman"
    ],
    "executableArgs": [ "--no-sandbox" ],
    "icon": "bin/Assets/icon.png",
    "artifactName": "${name}-${arch}-${version}.${ext}"
  },
  "win": {
    "target": [
      {
        "target": "portable",
        "arch": "x64"
      }
    ],
    "icon": "bin/Assets/icon.ico"
  },
  "mac": {
    "icon": "bin/Assets/icon.icns"
  }
}

更多可用配置选项详见 electron-builder 官方文档

从 Visual Studio 发布

  1. 在解决方案资源管理器中右键单击项目
  2. 选择“发布”
  3. 选择发布配置文件(Windows/Linux)
  4. 点击“发布”

发布过程将:

  • 构建 .NET 应用程序
  • 复制所有需要的文件
  • 安装 npm 依赖项
  • 运行 electron-builder

[!NOTE]
在 Windows 上为 Linux 配置运行发布时,Electron.NET 将自动使用 WSL 进行特定于平台的步骤。

发布后,最终结果将位于 publish\Release\netx.0\xxx-xxx\

MacOS 构建注意事项

[!NOTE] 无法在 Windows 机器上创建 macOS 构建,因为它们需要 Windows 不支持的符号链接(根据 此 Electron 问题)。可以在 Linux 或 macOS 机器上生成 macOS 构建。

后续步骤

优势

原生 VS 集成 - 使用熟悉的发布工作流
跨平台构建 - 从 Windows 构建 Linux 软件包
自动配置 - 无需手动设置 electron-builder
多种软件包类型 - NSIS、AppImage、DMG 等
CI/CD 就绪 - 轻松集成到构建管道

【免费下载链接】Electron.NET Electron.NET是一个将.NET Core与Electron框架结合的项目,允许使用C#/.NET来开发跨平台桌面应用程序。其特点在于开发者可以利用.NET生态系统的强大功能和C#语言特性,同时享有Electron带来的原生桌面GUI开发能力。 【免费下载链接】Electron.NET 项目地址: https://gitcode.com/gh_mirrors/el/Electron.NET

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值