PCLN.Plugin.Analyzers
0.1.0-alpha.5
dotnet add package PCLN.Plugin.Analyzers --version 0.1.0-alpha.5
NuGet\Install-Package PCLN.Plugin.Analyzers -Version 0.1.0-alpha.5
<PackageReference Include="PCLN.Plugin.Analyzers" Version="0.1.0-alpha.5"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="PCLN.Plugin.Analyzers" Version="0.1.0-alpha.5" />
<PackageReference Include="PCLN.Plugin.Analyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add PCLN.Plugin.Analyzers --version 0.1.0-alpha.5
#r "nuget: PCLN.Plugin.Analyzers, 0.1.0-alpha.5"
#:package PCLN.Plugin.Analyzers@0.1.0-alpha.5
#addin nuget:?package=PCLN.Plugin.Analyzers&version=0.1.0-alpha.5&prerelease
#tool nuget:?package=PCLN.Plugin.Analyzers&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.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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 | 21 | 7/14/2026 |
| 0.1.0-alpha.3 | 41 | 7/14/2026 |