菜单

从源代码构建

相关源文件

本文档提供了从源代码构建 Shadowsocks Windows 客户端的详细说明。它涵盖了先决条件、源代码获取、构建过程和常见的故障排除步骤。有关构建后测试应用程序的信息,请参阅测试

先决条件

在构建 Shadowsocks Windows 之前,请确保您的开发环境满足以下要求

开发环境

要求详情
操作系统Windows 10/11
IDEVisual Studio 2019 或更高版本
.NET Framework4.8 SDK
Git用于克隆仓库

所需技能

  • C# 和 .NET Framework 的基础知识
  • 熟悉 Visual Studio IDE
  • 理解 NuGet 包管理

来源: shadowsocks-csharp/shadowsocks-csharp.csproj1-20

获取源代码

克隆仓库

使用 Git 克隆仓库

存储库结构

来源: shadowsocks-csharp/shadowsocks-csharp.csproj1-5 .gitignore1-10

使用 Visual Studio 构建

打开解决方案

  1. 打开 Visual Studio
  2. 选择“打开项目或解决方案”
  3. 导航到克隆的仓库并打开 shadowsocks-windows.sln

还原 NuGet 包

该项目使用了一些 NuGet 包,需要在构建前还原

要还原包,请执行以下操作

  1. 在解决方案资源管理器中右键单击解决方案
  2. 选择“还原 NuGet 包”
  3. 等待包下载并安装完成

来源: shadowsocks-csharp/packages.config1-38 shadowsocks-csharp/shadowsocks-csharp.csproj73-218

构建解决方案

构建配置

该项目支持不同的构建配置

配置平台输出路径描述
调试x86bin\x86\Debug\包含调试符号的开发版本
发布x86bin\x86\Release\用于发布的优化版本

来源: shadowsocks-csharp/shadowsocks-csharp.csproj47-68

构建项目

  1. 在 Visual Studio 的下拉菜单中选择所需的构建配置(Debug/Release)和平台(x86)
  2. 点击“构建” > “构建解决方案”(或按 F6)
  3. 编译后的可执行文件将创建在与您选择的配置相对应的输出目录中

使用命令行构建

您也可以使用命令行中的 MSBuild 构建项目

  1. 打开 Visual Studio 的开发者命令提示符
  2. 导航到仓库文件夹
  3. 还原 NuGet 包
  4. 构建解决方案

构建流程详解

构建过程涉及多个组件和步骤

资源嵌入

在构建过程中,一些资源会嵌入到最终的可执行文件中

  • UI 图标和图片
  • 默认配置文件
  • 代理工具 (privoxy.exe, sysproxy.exe)
  • 加密库

来源: shadowsocks-csharp/Properties/Resources.resx120-165 shadowsocks-csharp/Properties/Resources.Designer.cs85-253

使用 Costura.Fody 嵌入程序集

该项目使用 Costura.Fody 将引用的程序集嵌入到最终的可执行文件中,从而创建单文件部署。此配置在 FodyWeavers.xml 文件中。

来源: shadowsocks-csharp/FodyWeavers.xml1-6

运行构建的应用程序

编译成功后,您可以运行应用程序

  1. 导航到输出目录(例如,bin\x86\Release\
  2. 运行 Shadowsocks.exe

应用程序需要管理员权限才能执行某些操作(如系统代理配置),这在应用程序清单中指定。

来源: shadowsocks-csharp/shadowsocks-csharp.csproj69-71

构建问题故障排除

常见问题和解决方案

问题可能解决方案
NuGet 包还原失败确保您已连接互联网且 NuGet.org 已配置为包源
缺少 .NET Framework安装 .NET Framework 4.8 Developer Pack
与 Fody 相关的构建错误确保 Fody 及其扩展已正确安装
资源编译错误检查所有资源文件是否有效且格式正确
“文件正在使用中”错误关闭任何正在运行的应用程序实例或 Visual Studio

调试构建错误

  1. 查看 Visual Studio 中的“错误列表”窗口以获取具体的错误信息
  2. 确保所有项目引用均有效
  3. 验证 NuGet 包是否已正确还原
  4. 清理解决方案并重新构建

贡献变更

成功构建和修改源代码后

  1. 为您的更改创建一个新分支
  2. 进行您的修改
  3. 构建并测试您的更改
  4. 向主仓库提交拉取请求

有关贡献的更多详细信息,请参阅许可证和贡献

来源: shadowsocks-csharp/shadowsocks-csharp.csproj1-457