Zeek.Ipc 10.0.39
Zeek.Ipc
Zeek.Ipc 是面向 Avalonia 桌面应用的本机进程间协调模块。
它只负责单实例、第二实例激活转发和显式 handler 分发;它不是 RPC 框架、分布式通信、插件通信平台或服务端平台。
适用场景
- 阻止同一用户重复启动多个应用实例。
- 第二实例启动时把命令行参数、文件路径或 URI 转发给主实例。
- custom protocol、文件关联或外部程序唤起应用时激活已有主实例。
- 应用通过显式
IActivationHandler处理本机激活请求。
安装 / 引用
发布包消费时引用:
<PackageReference Include="Zeek.Ipc" />
当前 sample 已切换为发布态 PackageReference 消费路径,包版本由根目录 Directory.Packages.props 统一管理。
快速开始
public static IReadOnlyList<ModuleDependency> Dependencies =>
[ModuleDependency.Of<IpcModule>()];
public void ConfigureServices(ModuleContext context)
{
context.ConfigureIpc(options =>
{
options.ApplicationId = "com.example.desktop";
options.SingleInstance.Enabled = true;
});
context.Services.AddSingleton<IActivationHandler, OpenFileActivationHandler>();
}
Zeek.Ipc 不创建 Avalonia window,不负责置顶窗口或执行业务 deep link 路由;这些由应用层 handler 处理。
模块只通过 ModuleDependency.Of<IpcModule>() 启用,ConfigureIpc(...) 只补充 options。named pipe 使用长度前缀、payload 上限和单连接 deadline;Windows 默认限制当前用户。该通信仍是 best-effort 本机激活,不是认证、强一致或安全 RPC。
AOT / Trim
- AOT 支持等级:Supported。
- Trim 策略:显式注册
IActivationHandler;不扫描程序集发现 handler。 - 反射策略:仅 DI 构造;payload JSON 使用显式 metadata 或模块内部固定 metadata。
Sample
../../samples/Zeek.IpcSample/
完整文档
../../docs/modules/Zeek.Ipc.md
当前限制
- 不提供 RPC、message bus、event bus、插件通信或跨机器通信。
- 不负责 custom protocol 或文件关联的系统注册写入。
- 不负责 UI 窗口恢复、置顶、托盘恢复或业务 URI 路由。
No packages depend on Zeek.Ipc.
.NET 10.0
- Zeek.Core (>= 10.0.39)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
| Version | Downloads | Last updated |
|---|---|---|
| 10.0.42 | 4 | 07/29/2026 |
| 10.0.41 | 14 | 07/22/2026 |
| 10.0.40 | 9 | 07/22/2026 |
| 10.0.39 | 19 | 07/19/2026 |
| 10.0.38 | 14 | 07/17/2026 |
| 10.0.37 | 1 | 07/16/2026 |
| 10.0.36 | 5 | 06/29/2026 |
| 10.0.35 | 1 | 06/29/2026 |
| 10.0.31 | 5 | 06/27/2026 |
| 10.0.30 | 2 | 06/27/2026 |
| 10.0.29 | 2 | 06/26/2026 |
| 10.0.28 | 2 | 06/26/2026 |
| 10.0.27 | 2 | 06/26/2026 |
| 10.0.26 | 4 | 06/25/2026 |
| 10.0.25 | 3 | 06/24/2026 |