过去的建议是“不要在托管代码中编写进程内 shell 扩展”。
但是使用 .NET Framework 4 和In-Process Side-by-Side应该解决不在托管代码中编写 shell 扩展的主要原因。
话虽如此,我有三个问题。
- 现在可以在托管代码中编写 shell 扩展了吗?
- 在托管代码中编写 shell 扩展可能存在哪些问题(如果有的话)?
- 在非托管代码中编写 shell 扩展的原因可能是什么?
过去的建议是“不要在托管代码中编写进程内 shell 扩展”。
但是使用 .NET Framework 4 和In-Process Side-by-Side应该解决不在托管代码中编写 shell 扩展的主要原因。
话虽如此,我有三个问题。
查看这篇 MSDN 文章:使用 .NET Framework 4(C#、VB.NET)编写 Windows Shell 扩展 - 第 1 部分 http://blogs.msdn.com/b/codefx/archive/2010/09/14/writing-windows -shell-extension-with-net-framework-4-c-vb-net-part-1.aspx
查看EZNamespaceExtensions.Net,它消除了上面的 #2 以及开发一般命名空间扩展所需的时间(无论是托管还是非托管)。
现在可以在 .NET 4 托管代码中编写 shell 扩展。您仍应避免在 .NET 3.5 或更早版本中编写 shell 扩展,因为这些早期版本不支持彼此并行的进程内扩展。