PCLN.Plugin.UI 0.1.0-alpha.5

This is a prerelease version of PCLN.Plugin.UI.
dotnet add package PCLN.Plugin.UI --version 0.1.0-alpha.5
                    
NuGet\Install-Package PCLN.Plugin.UI -Version 0.1.0-alpha.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PCLN.Plugin.UI" Version="0.1.0-alpha.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PCLN.Plugin.UI" Version="0.1.0-alpha.5" />
                    
Directory.Packages.props
<PackageReference Include="PCLN.Plugin.UI" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PCLN.Plugin.UI --version 0.1.0-alpha.5
                    
#r "nuget: PCLN.Plugin.UI, 0.1.0-alpha.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PCLN.Plugin.UI@0.1.0-alpha.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PCLN.Plugin.UI&version=0.1.0-alpha.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=PCLN.Plugin.UI&version=0.1.0-alpha.5&prerelease
                    
Install as a Cake Tool

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.ApplicationPCL.DesktopPCL.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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on PCLN.Plugin.UI:

Package Downloads
PCLN.Plugin.Sdk

Manifest validation, versioning, and developer helpers for building third-party PCL N plugins.

PCLN.Plugin.Testing

In-memory host services and lifecycle utilities for testing PCL N plugins without the launcher.

PCLN.Plugin.UI.Avalonia

Opt-in raw Avalonia access and host-managed page/window contracts for trusted PCL N plugins.

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