Skip to content

NuGet 包

当前公开版本:0.1.0-alpha.4

所有包 ID 使用 PCLN.Plugin.*。为保持源码和二进制兼容,程序集名与命名空间仍使用 PCL.N.Plugin.*,因此 C# 代码继续写 using PCL.N.Plugin;

用途应放在哪里
PCLN.Plugin.Abstractions入口、生命周期、服务、Manifest 和 UI 公共 ABI插件项目
PCLN.Plugin.SdkManifest 验证、版本范围、Capability 辅助扩展插件项目
PCLN.Plugin.AnalyzersPNPSDK001–010 编译诊断插件项目,PrivateAssets=all
PCLN.Plugin.Testing内存服务与生命周期测试宿主仅测试项目
PCLN.Plugin.Sdk.Build.pnp 打包、文件表、可复现构建和 GPG 签名插件项目,PrivateAssets=all

推荐项目引用

xml
<ItemGroup>
  <PackageReference Include="PCLN.Plugin.Abstractions" Version="0.1.0-alpha.4" />
  <PackageReference Include="PCLN.Plugin.Sdk" Version="0.1.0-alpha.4" PrivateAssets="all" />
  <PackageReference Include="PCLN.Plugin.Analyzers" Version="0.1.0-alpha.4" PrivateAssets="all" />
  <PackageReference Include="PCLN.Plugin.Sdk.Build" Version="0.1.0-alpha.4" PrivateAssets="all" />
  <AdditionalFiles Include="plugin.json" />
</ItemGroup>

测试项目:

xml
<PackageReference Include="PCLN.Plugin.Testing" Version="0.1.0-alpha.4" />

为什么不能引用 PCL.Plugin?

PCL.Plugin 是 PCL N 内置的私有特权 Host,负责加载、安全、市场、恢复和桌面桥接。它可以随启动器重构,第三方插件对其建立编译依赖会破坏兼容和安全边界。

Analyzer 会阻止引用:

  • PCL.Application
  • PCL.Desktop
  • PCL.Plugin
  • 对应私有命名空间

版本锁定

alpha 阶段建议在仓库中显式固定完整版本,并让依赖更新通过单独提交进入:

xml
<PclNPluginSdkVersion>0.1.0-alpha.4</PclNPluginSdkVersion>
xml
<PackageReference Include="PCLN.Plugin.Abstractions" Version="$(PclNPluginSdkVersion)" />

不要使用 0.1.* 等浮动版本构建正式发布物,否则同一源码在不同时间可能得到不同 ABI 和包哈希。