PCLN.Plugin.Sdk
0.1.0-alpha.5
dotnet add package PCLN.Plugin.Sdk --version 0.1.0-alpha.5
NuGet\Install-Package PCLN.Plugin.Sdk -Version 0.1.0-alpha.5
<PackageReference Include="PCLN.Plugin.Sdk" Version="0.1.0-alpha.5" />
<PackageVersion Include="PCLN.Plugin.Sdk" Version="0.1.0-alpha.5" />
<PackageReference Include="PCLN.Plugin.Sdk" />
paket add PCLN.Plugin.Sdk --version 0.1.0-alpha.5
#r "nuget: PCLN.Plugin.Sdk, 0.1.0-alpha.5"
#:package PCLN.Plugin.Sdk@0.1.0-alpha.5
#addin nuget:?package=PCLN.Plugin.Sdk&version=0.1.0-alpha.5&prerelease
#tool nuget:?package=PCLN.Plugin.Sdk&version=0.1.0-alpha.5&prerelease
PCL N Plugin SDK
PCL N 第三方插件的公开契约、开发工具、分析器、测试宿主和 .pnp 构建工具。
当前版本:
0.1.0-alpha.5。1.0 前公共 API 仍可能调整。
包
| NuGet 包 | 用途 |
|---|---|
PCLN.Plugin.Abstractions |
插件入口、生命周期、服务、Manifest 和 UI 公共 ABI |
PCLN.Plugin.UI |
UI Target、导航和页面注册的稳定契约 |
PCLN.Plugin.UI.Avalonia |
受权限控制的 Raw Avalonia、页面和窗口契约 |
PCLN.Plugin.Sdk |
Manifest 验证、SemVer 范围和开发辅助 API |
PCLN.Plugin.Analyzers |
PNPSDK001–010 编译诊断 |
PCLN.Plugin.Testing |
内存服务与生命周期测试宿主 |
PCLN.Plugin.Sdk.Build |
可复现 .pnp 打包和 OpenPGP/GPG 签名 |
NuGet 包 ID 使用 PCLN.Plugin.*;为保持源码和二进制兼容,程序集名与命名空间仍使用 PCL.N.Plugin.*。
PCL.Plugin 是 PCL-N 的私有特权 Host,不属于公共 SDK。第三方插件不得引用 PCL.Application、PCL.Desktop 或 PCL.Plugin。
快速开始
安装 .NET 10 SDK,然后参考 examples/HelloPlugin。示例展示:
IPclNPlugin生命周期;- 命令和设置页注册;
- Manifest UI Patch 声明;
- 无代码隐藏的声明式 AXAML;
- Release 构建生成平台无关的 AnyCPU
.pnp,并支持runtimes/<rid>/native/多架构原生资产。
dotnet restore PCL-N-Plugin-SDK.slnx
dotnet build PCL-N-Plugin-SDK.slnx -c Release -warnaserror
dotnet test PCL-N-Plugin-SDK.slnx -c Release --no-build
正式插件包必须签名。开发构建可以显式设置:
<PclNPluginSign>false</PclNPluginSign>
该设置不会生成未签名包:构建工具会创建并使用本机开发密钥。开发签名包可以本地安装,但不得提交插件市场;运行时不提供“允许未签名插件”开关。
插件中心使用双层签名:开发者上传自己的 OpenPGP 自签名候选包;审核通过后,网站保留开发者签名并生成带 META-INF/market/ 网站签名封套的新分发包。PCL 从市场安装时会对最终包计算 SHA-256,并向 POST /v1/packages/verify 在线核对发布者、命名空间、双指纹和吊销状态;验证服务不可用时拒绝首次安装。
AXAML UI
Manifest 的 UI operation 可以引用包内 ui/*.axaml:
{
"id": "hello-panel",
"kind": "inject",
"slot": "primary-actions.after",
"axaml": "ui/HelloPanel.axaml",
"command": "dev.muxue.hello.say-hello"
}
首版只支持声明式 AXAML:禁止 x:Class、代码隐藏和 PCL-N 私有 CLR 命名空间。行为通过公开命令 ID 和 Host 提供的公开绑定上下文连接。
文档
版本化 Wiki 源文件位于 wiki/,发布工作流会同步到 GitHub Wiki。同一套详细文档也发布到 docs.pcln.top。
Manifest Schema 位于 schemas/plugin.schema.json。
CI 与发布
CI 在 Windows、Linux 和 macOS 上构建与测试,并验证七个 NuGet 包、示例 .pnp、AXAML 资源和可复现输出。sdk-v* Tag 经 nuget-production 环境审批后发布 NuGet 并同步 Wiki。
Licensed under the Apache License 2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- PCLN.Plugin.Abstractions (>= 0.1.0-alpha.5)
- PCLN.Plugin.UI (>= 0.1.0-alpha.5)
- PCLN.Plugin.UI.Avalonia (>= 0.1.0-alpha.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.5 | 0 | 7/14/2026 |
| 0.1.0-alpha.4 | 20 | 7/14/2026 |
| 0.1.0-alpha.3 | 42 | 7/14/2026 |