我目前正在尝试创建一个自定义Shell命名空间扩展(用于呈现包含“子文件夹”和“文件”的虚拟文件夹,它实际上是分层树中数据的表示形式来自远程服务的结构)。这个扩展名是C#编写的,我知道这个扩展名是个不错的主意,但是自从.NET 4引入了不同版本的.NET运行时在同一个进程中共存的可能性以来,我想到了这一点限制不再是一个问题。Shell命名空间扩展无法在Windows 7中加载
到目前为止,我已经通过遵循网络上提供的大量示例和参考资料,在Windows XP中正常工作,但是当我在Windows 7中尝试它时(我还没有在Vista中尝试过它,所以我不不知道它是否会在那里工作),扩展没有加载。根据我的调试日志输出,它的寄存器很好,但是当我打开一个Windows资源管理器窗口时,没有任何通常的COM接口调用似乎发生(通常以IPersistFolder :: Initialize开始)。实际上,甚至不会调用类构造函数。我不知道接口是否被查询(成功与否),因为我不知道如何在.NET中检测到,因此我可以记录它。所以,基本上,我没有任何线索可以通过,因为即使在我有机会记录关于可能出错的任何有用信息之前它也会失败。
有没有人碰巧有什么想法可能是什么问题?在处理我应该注意的shell命名空间扩展时,Windows 7中是否有任何与Windows XP相反的特性?如果需要更多的细节,请随时询问(我试图保持简短,因为我确信没有人会喜欢我复制&粘贴我的整个代码在这里,我不能削减到相关的部分,因为我根本就不知道这些是哪些......)
这个......扩展名编译为32位,而Windows 7是64位?.. – GSerg
不,这是一个32位的Win 7;我希望这个解决方案很简单... –
这并不回答你的问题,但.NET命名空间扩展不支持.NET http://msdn.microsoft.com/en-us/library/windows/desktop/dd758089( v = vs.85)的.aspx。 –