-
Notifications
You must be signed in to change notification settings - Fork 1
Plugin Package
Ling edited this page Jul 7, 2026
·
3 revisions
PCL 插件以目录为单位安装。每个插件目录必须包含 plugin.json,并包含入口 DLL 或入口脚本。
Plugins/
com.example.hello/
plugin.json
HelloPlugin.dll
DependencyA.dll
Resources/
icon.png
plugin.json 示例:
{
"id": "com.example.hello",
"name": "Hello Plugin",
"version": "1.0.0.0",
"author": "Example",
"description": "A minimal C# plugin.",
"entry": "HelloPlugin.dll",
"type": "dotnet",
"minApiVersion": "1.1.0.0",
"capabilities": ["ContributeTools"]
}Plugins/
com.example.script/
plugin.json
main.js
lib/
helper.js
plugin.json 示例:
{
"id": "com.example.script",
"name": "Script Plugin",
"version": "1.0.0.0",
"author": "Example",
"description": "A minimal JavaScript plugin.",
"entry": "main.js",
"type": "javascript",
"minApiVersion": "1.1.0.0",
"capabilities": []
}| 字段 | 说明 |
|---|---|
id |
插件唯一 ID。建议反向域名格式,如 com.example.myplugin
|
name |
插件显示名称 |
version |
插件版本号 |
author |
作者 |
description |
简短描述 |
entry |
DLL 文件或 JS 入口脚本 |
type |
dotnet 或 javascript
|
minApiVersion |
插件需要的最低 SDK API 版本 |
maxApiVersion |
可选,最高兼容 SDK API 版本 |
minHostVersion |
可选,最低启动器版本 |
maxHostVersion |
可选,最高兼容启动器版本 |
capabilities |
能力声明数组 |
插件 ID 应稳定、唯一、全小写,推荐:
com.example.myplugin
org.example.tools.backup
net.example.lobby.easytier
避免使用:
My Plugin
hello plugin
plugin#1
DLL 插件:
-
entry指向插件主 DLL。 - DLL 内应有一个入口类实现
IPclPlugin。 - 入口类通常使用
[Plugin(...)]标注。 - 不要把
PCL.Plugin.Abstractions.dll打进插件包。
JS 插件:
-
entry指向入口脚本。 - 入口脚本定义全局
load(ctx)。 - 可选定义全局
unload()。 - JS 插件运行在 Jint 中,不是 Node.js。
插件可以携带自己的依赖 DLL、资源文件、配置模板等。插件运行时可以通过 context.DataDirectory 保存自己的持久化数据。
不要修改启动器安装目录中的文件。需要存数据时使用插件数据目录。