使用SharpShell构建托管的Windows Shell扩展
探索由 Dave Kerr 提供的 SharpShell,这是一个让 .NET 开发人员创建 Windows 资源管理器集成的框架,无需本地 C++ 或直接的 COM 编码。它公开了上下文菜单、图标叠加、预览和缩略图的处理程序,以便开发人员可以使用托管语言添加资源管理器级别的功能。该包包括一个服务器管理器测试 GUI 和命令行注册工具,使其对需要受控、以代码为中心的外壳自定义的软件开发人员和系统管理员非常有用。
SharpShell 将基于 COM 的 shell 工作转换为托管处理程序
该框架提供了一组具体的处理程序类型,以便开发人员可以使用 C# 或 VB.NET,而不是使用 C++ 中的原生 COM。支持的处理程序包括 上下文菜单、图标叠加、预览、缩略图、属性表 和 信息提示 实现。这种安排使团队能够通过编写普通程序集并遵循每个处理程序表面的 SharpShell API 来实现资源管理器集成。
服务器工具和注册减少开发工作流的部署摩擦
该项目提供了一个 服务器管理器 GUI 用于测试,以及一个命令行服务器注册管理器 (srm.exe) 用于安装或卸载服务器,而无需手动编辑注册表。它支持全局程序集缓存注册和代码库注册,因此程序集可以保持在一个文件夹中。这些工具使开发人员能够在扩展上进行迭代,并在开发周期中管理服务器,而无需反复重启资源管理器进程。
平台限制引导谁应该采用该框架
该框架针对 .NET Framework,并要求 shell 扩展在资源管理器进程内以进程内运行,这意味着程序集必须与操作系统位数匹配。它列出了现代 Windows 版本之间的兼容性,并依赖于 .NET Framework 4.0 或更高版本。考虑到这些要求,该框架适合接受 Windows 进程限制并在部署 shell 扩展时为正确架构编译的团队。
SharpShell 是经验丰富的 .NET 开发人员的实用选择
该框架是需要托管 shell 集成的 .NET 开发人员的实用选项,因为它用托管处理程序替换了本机 COM 管道,并提供测试和注册工具。预计在 Windows shell 概念和部署细节方面会有一个学习曲线,因此它最适合熟悉 Explorer 内部的开发人员或管理员,而不是休闲或脚本级别的自定义。