C#外壳扩展在x64中完成,但在x86中崩溃,出现访问冲突异常

本文关键字:崩溃 x86 异常 访问冲突 但在 扩展 外壳 x64 | 更新日期: 2023-09-27 18:26:50

我知道这不是在托管代码中实现shell扩展的更好方法,但这不是主题。

我有一个C#项目,它扩展了SharpShell库。我按照教程创建了一个图标处理程序扩展。在我所有的开发过程中,我都在x64平台上测试我的dll。但现在我想在两个平台上都能使用这个dll,但当我试图在Windows x86资源管理器崩溃中注册我的dll时,每次他看到我的一个扩展出现访问违规异常:

问题事件名称:CLR20r3

所以我试着在任何CPU、x86、x64中重新编译我的dll,但没有人在这个平台上工作。我试着使用SharpShell提供的服务器管理器,或者用regasm手动注册我的dll,但什么都不起作用。

有人知道这里发生了什么吗?

C#外壳扩展在x64中完成,但在x86中崩溃,出现访问冲突异常

不确定投票结果是什么。图标处理程序扩展将作为单个dll正常工作,只需确保它被编译为"任何CPU"即可。但是,在注册时,请使用正确版本的regasm注册(有一个用于x64,一个用于x86)。