From 364aa56cd4382052d3dfcd4e9f798bf339f815e6 Mon Sep 17 00:00:00 2001 From: FlowerRealm Date: Wed, 24 Sep 2025 14:03:07 +0800 Subject: [PATCH] Add Linux build script and documentation This PR adds a Linux build script (build-linux.sh) that allows building the v2rayN application on Linux systems. It also includes documentation (BUILD-LINUX.md) on how to use the script. Note: The documentation needs to be manually migrated to the Wiki. --- .gitignore | 3 +++ v2rayN/BUILD-LINUX.md | 54 +++++++++++++++++++++++++++++++++++++++++++ v2rayN/build-linux.sh | 30 ++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 v2rayN/BUILD-LINUX.md create mode 100755 v2rayN/build-linux.sh diff --git a/.gitignore b/.gitignore index 7d5416b6..d62612e0 100644 --- a/.gitignore +++ b/.gitignore @@ -399,3 +399,6 @@ FodyWeavers.xsd # JetBrains Rider .idea/ *.sln.iml + +# Add IFLOW.md to gitignore +IFLOW.md \ No newline at end of file diff --git a/v2rayN/BUILD-LINUX.md b/v2rayN/BUILD-LINUX.md new file mode 100644 index 00000000..d532ecce --- /dev/null +++ b/v2rayN/BUILD-LINUX.md @@ -0,0 +1,54 @@ +# Linux构建指南 + +本文档介绍了如何在Linux系统上构建v2rayN应用程序。 + +## 构建脚本 + +项目提供了一个专门的构建脚本 `build-linux.sh`,位于 `v2rayN/` 目录下。该脚本会执行以下操作: + +1. 还原所有项目的NuGet包依赖 +2. 构建所有项目(ServiceLib、GlobalHotKeys和v2rayN.Desktop) +3. 发布自包含的Linux应用程序到 `publish/v2rayN-linux-64/` 目录 + +## 系统要求 + +- Ubuntu/Debian或其他基于Debian的Linux发行版 +- 已安装 .NET 8.0 SDK +- Git(用于获取源代码和子模块) + +## 构建步骤 + +1. 确保已安装 .NET 8.0 SDK: + ```bash + dotnet --version + ``` + +2. 进入项目目录: + ```bash + cd v2rayN + ``` + +3. 运行构建脚本: + ```bash + ./build-linux.sh + ``` + +4. 构建完成后,可执行文件位于: + ``` + ./publish/v2rayN-linux-64/v2rayN + ``` + +5. 直接运行应用程序: + ```bash + ./publish/v2rayN-linux-64/v2rayN + ``` + +## 注意事项 + +- 构建脚本会自动处理子模块的初始化 +- 构建过程可能需要几分钟时间,具体取决于系统性能 +- 生成的可执行文件是自包含的,不依赖系统上的其他库 +- 如果遇到权限问题,请确保构建脚本具有执行权限: + ```bash + chmod +x build-linux.sh + ``` \ No newline at end of file diff --git a/v2rayN/build-linux.sh b/v2rayN/build-linux.sh new file mode 100755 index 00000000..a396c6bf --- /dev/null +++ b/v2rayN/build-linux.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# v2rayN Linux构建脚本(仅生成可执行文件) + +set -e # 遇到错误时停止执行 + +# 还原NuGet包 +echo "正在还原NuGet包..." +dotnet restore ./v2rayN.Desktop/v2rayN.Desktop.csproj +dotnet restore ./ServiceLib/ServiceLib.csproj +dotnet restore ./GlobalHotKeys/src/GlobalHotKeys/GlobalHotKeys.csproj + +# 构建项目 +echo "正在构建项目..." +dotnet build ./ServiceLib/ServiceLib.csproj --configuration Release +dotnet build ./GlobalHotKeys/src/GlobalHotKeys/GlobalHotKeys.csproj --configuration Release +dotnet build ./v2rayN.Desktop/v2rayN.Desktop.csproj --configuration Release + +# 发布应用 +echo "正在发布应用..." +OUTPUT_DIR="./publish" +mkdir -p $OUTPUT_DIR + +# 发布Desktop版本(仅生成可执行文件) +echo "发布Desktop版本..." +dotnet publish ./v2rayN.Desktop/v2rayN.Desktop.csproj -c Release -r linux-x64 --self-contained true -o $OUTPUT_DIR/v2rayN-linux-64 + +echo "构建完成!" +echo "可执行文件位于: ./publish/v2rayN-linux-64/" +echo "直接运行: ./publish/v2rayN-linux-64/v2rayN" \ No newline at end of file