.NET Shell Extensions - 部署 SharpShell 服务器
了解如何使用新的Server Registration Manager工具轻松部署SharpShell服务器。
引言
在过去的几个月里,我一直在努力开发 SharpShell 项目。 这是一个允许您使用 .NET Framework 快速构建 Windows Shell Extensions 的项目。 用户面临的一个难题是,要部署用 .NET 编写的 Shell Extension,您必须使用 regasm 工具,而该工具通常只安装在开发机器上。
使用 SharpShell 2.0,有一个服务器注册管理器工具,可以轻松部署 SharpShell 服务器。
系列文章
本文是 '.NET Shell Extensions' 系列的一部分,该系列包括
- .NET Shell Extensions - Shell Context Menus (右键菜单扩展)
- .NET Shell Extensions - Shell Icon Handlers (图标处理程序)
- .NET Shell Extensions - Shell Info Tip Handlers (信息提示处理程序)
- .NET Shell Extensions - Shell Drop Handlers (拖放处理程序)
- .NET Shell Extensions - Shell Preview Handlers (预览处理程序)
- .NET Shell Extensions - Shell Icon Overlay Handlers (图标叠加处理程序)
- .NET Shell Extensions - Shell Thumbnail Handlers (缩略图处理程序)
- .NET Shell Extensions - Shell Property Sheets (属性表处理程序)
- .NET Shell Extensions - 部署 SharpShell 服务器
什么是 SharpShell?
SharpShell
是一个非常轻量级的类库,允许您使用 .NET Framework 构建 Windows Shell Extensions。 如您从上面的链接中看到的,支持很多不同类型的服务器。 您可以在 GitHub 页面上找到很好的介绍,以及每种服务器类型的示例
部署 Shell Extensions
部署用 C 或 C++ 编写的 Shell Extensions 通常很简单,因为 Windows 中包含的 regsvr32 工具可以使用。 但是,要部署托管的 Shell Extension,必须使用 regasm 工具,而 Windows 默认情况下不包含该工具。 我已将“服务器注册管理器”工具 (srm.exe) 添加到 SharpShell 中,这使得安装和卸载服务器变得容易。
从命令行安装服务器
从本文下载 SharpShell 工具二进制文件,或从 github.com/dwmkerr/sharpshell 获取最新版本。 使用此工具,您可以这样安装服务器
srm install server.dll -codebase
简单! 您可以这样卸载同一服务器
srm uninstall server.dll
这是本文的主要结论。 srm 工具可以安装和卸载服务器 - 所有其他机制(例如 Windows 安装程序)都将在幕后使用它。
为 SharpShell 服务器创建安装程序
在此示例中,我将使用 Visual Studio 2010 为在第一篇文章中编写的“Count Lines”扩展创建安装程序。
提示:您也可以使用 WiX - 只需创建一个自定义操作来运行上面显示的命令!
步骤 1:创建安装程序项目
从 Visual Studio 2010 创建一个新的“设置和部署”项目。 现在将您的 SharpShell 服务器和 srm.exe 工具添加到应用程序文件夹中,如下所示
步骤 2:添加自定义操作以安装和卸载
现在导航到安装程序的“自定义操作”部分。 创建一个新的“安装”自定义操作,该操作从应用程序文件夹执行 srm.exe 工具
您可以单击此操作来设置属性。 我们需要传递参数 'install
'、服务器的路径以及 '-codebase
' 标志(告知直接安装服务器,而不是使用对 GAC 的引用)。
确保“InstallerClass
”属性设置为 False
,否则安装程序将尝试从 EXE 加载 Installer Class 对象,而它不包含该对象。
现在为 Uninstall
创建一个类似的操作 - 这次,我们需要命令行上的 'uninstall
' 命令、与之前相同的服务器路径,并且没有 -codebase
标志。 这是我在本例中使用的命令行
uninstall "[TARGETDIR]\CountLinesExtension.dll"
就是这样! 您现在可以运行您的安装程序来安装 SharpShell 服务器!
最终想法
这是一篇非常简短的文章,但许多一直在使用 SharpShell 的用户一直在请求一种更轻松的方式来部署他们的服务器,所以它就在这里!
历史
- 2013 年 9 月 15 日:初始版本