Skip to content

Building

DNTOF edited this page Sep 24, 2026 · 5 revisions

构建与发布

对齐 2.6.0 PEAK 维护者流程。

环境

  • .NET SDK(能构建 net48)
  • 已安装 SCP:SL Dedicated Server(提供 Assembly-CSharp 等)
  • 本机 LabAPI 运行时目录(含 LabApi.dll)

编译

dotnet build -c Release
# 产物:bin/Release/net48/SLDataAPI.dll

MSBuild 路径覆盖

游戏 Managed 与 LabAPI 默认按本机路径引用;其他机器:

dotnet build -c Release \
  -p:SCPSL_DIR="/path/to/SCPSL_Data/Managed" \
  -p:LABAPI_DIR="/path/to/AppData/.../LabAPI"

仓库不分发游戏 DLL;缺失引用会编译失败。

强名称签名

仓库根目录存在 key.snk 时 Release 自动强名称签名,公钥令牌 3ec73bb20070fa9c。
key.snk 不入库;发布流水线使用保管的密钥,保证自动更新校验通过。

部署

  1. SLDataAPI.dll → %AppData%/SCP Secret Laboratory/LabAPI/plugins/global/
  2. 依赖 → LabAPI/dependencies/global/(Harmony + Newtonsoft)
  3. 重启游戏服务器;配置见 Configuration

自动更新(运行时)

auto_update_install 从 GitHub Releases 拉取同名程序集,校验程序集名与签名。
只安装正式稳定包:跳过 prerelease/draft,以及 tag 名含 beta / alpha / rc / preview / dev 等标识的版本。

发布检查清单(维护者)

  1. 更新 Plugin.Version 与用户可见版本字符串(当前 2.6.0 / PEAK)
  2. dotnet build -c Release 干净通过
  3. 运行相关单测(如 tests/SLDataAPI.Auth.Tests、Update、WebDav)
  4. 打 Git tag(如 v2.6.0_PEAK),上传 Release 资产(DLL、可选 DevKit、AdaptedPluginSample)
  5. 同步本 Wiki:现行接口改 HTTP-API;历史对照改 Old-HTTP-API
  6. 功能开发可走长期分支,合入 main 并发正式包后再改稳定文档

目录结构

见 Architecture。

Clone this wiki locally