【发布时间】:2010-06-16 13:56:29
【问题描述】:
任何人都有关于如何使用 .NET 将菜单项添加到资源管理器外壳的任何文档或示例。
只能找到信息说现在应该可以使用 .NET 4.0,但不知道如何去做。
【问题讨论】:
任何人都有关于如何使用 .NET 将菜单项添加到资源管理器外壳的任何文档或示例。
只能找到信息说现在应该可以使用 .NET 4.0,但不知道如何去做。
【问题讨论】:
早在 2004 年,MSDN 杂志就有一篇关于托管 shell 扩展的文章:
Create Namespace Extensions for Windows Explorer with the .NET Framework
我认为.NET 4.0 中的基本机制没有改变。但不同之处在于,使用 .NET 4.0,您可以放心地忽略该文章顶部的红色警告(“...Microsoft 建议不要编写托管 shell 扩展...”),因为 CLR 的 4.0 版可以同时托管-side 与同一进程中的其他版本。这在以前是不可能的。
更新:
All-In-One Code Framework 现在包含一个example for managed shell extensions (CSShellExtContextMenuHandler)。
【讨论】:
即使使用并行执行的 .NET 4,编写托管 shell 扩展也可能不是一个好主意:According to Microsoft 员工 Jialiang Ge,“Microsoft [...] 尚未确定是否会长期支持托管 shell 扩展 [...] Microsoft [...] 将不支持托管 shell 扩展,并建议不要编写它们。”
【讨论】:
最新版本(目前为 All-In-One Code Framework 2011-8-8 2011 年 8 月 8 日)的 All-In-One 框架不再包含这些示例。 Think MS 删除了对托管 shell-in 的正式支持。
但是我可以确认它们仍然可以从 All-In-One Code Framework 2010-09-06 http://1code.codeplex.com/releases/view/51868
更新:
文档中有一个错误。要在 x64 机器上安装创建的 shell 扩展,请使用“Visual Studio x64 Win64 命令提示符 (2010)”来运行 regasm 命令。此命令提示符已作为 Visual Studio 安装程序中 c++ 内容的一部分安装,但本质上是以下命令:
%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" amd64
【讨论】: