Skip to content

Building

Cursor Agent edited this page Sep 18, 2026 · 2 revisions

构建与发布

环境

  • .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. dotnet build -c Release 无警告
  3. 运行 tests/SLDataAPI.Auth.Tests(ACL / RemoteCommandGuard / 确认逻辑)
  4. 打 Git tag,上传 Release 资产(SLDataAPI.dll
  5. 同步 Wiki:稳定线改 HTTP-API;预览线改 Preview-HTTP-API
  6. mainpreview/* 分支策略:预览功能在 preview 合入后再进稳定文档

目录结构

Architecture

Clone this wiki locally