Repository navigation
Building
DNT_OF edited this page Oct 18, 2026
·
10 revisions
对齐 main 上的维护者流程;预发布的差异见文末。
- .NET SDK(能构建
net48) - 已安装 SCP:SL Dedicated Server(提供
Assembly-CSharp等) - 本机 LabAPI 运行时目录(含
LabApi.dll)
dotnet build -c Release
# 产物:bin/Release/net48/SLDataAPI.dll游戏 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 不入库。
现状:目前 GitHub 上的官方 Release DLL 未强签名,因此自动更新只提示、不安装(见 Security-Model「自动更新」)。
-
SLDataAPI.dll→%AppData%/SCP Secret Laboratory/LabAPI/plugins/global/ - 依赖 →
LabAPI/dependencies/global/:0Harmony.dll(2.3.x)与Newtonsoft.Json.dll(13.0.x),游戏本身不自带- Harmony:https://github.com/pardeike/Harmony/releases(选 net472)
- Newtonsoft.Json:https://www.nuget.org/packages/Newtonsoft.Json(13.0.x)
- 或从完整安装 LabAPI 的服务器
dependencies/global/复制
- 重启游戏服务器;配置见 Configuration
auto_update_install 从 GitHub Releases 拉取同名程序集,校验程序集名与签名。
只安装正式稳定包:跳过 prerelease/draft,以及 tag 名含 beta / alpha / rc / preview / dev 等标识的版本。预发布一律在 GitHub 上勾选 Pre-release,tag 名也带 preview(v<版本>-preview_<代号>),双重保险。
- 更新
Plugin.Version、SLDataAPI.csproj(Version/AssemblyVersion/FileVersion/InformationalVersion)与用户可见版本字符串(版本号 + 代号) -
dotnet build -c Release干净通过 - 运行相关单测(如
tests/SLDataAPI.Auth.Tests、Update、WebDav) - 打 Git tag(正式版
v<版本>_<代号>;预发布v<版本>-preview_<代号>),上传 Release 资产(SLDataAPI.dll、DevKit zip、AdaptedPluginSample.dll);预发布勾选 Pre-release - 同步本 Wiki:现行接口改 HTTP-API;历史对照改 Old-HTTP-API
- 功能开发可走长期分支,合入
main并发正式包后再改稳定文档
- 源码在
preview/*分支,未合入main;发布正式版时合入main。 - 需要针对 Steam 测试分支编译时,用
-p:SCPSL_DIR=...指向该分支的Managed目录。 - 节日相关的游戏类型一律按名称反射查找,游戏版本缺少时运行时 fail-closed,见 Holiday-Features。
见 Architecture。
SLDataAPI Wiki
- Home
- Q&A(常见问题)
- 接口
- HTTP-API
- WS-Control-Protocol
- Beta-Features(内测开关,默认关)
- Holiday-Features(节日功能)
- Old-HTTP-API(旧版历史)
- 语音
- 运维
- 开发