0

我正在尝试使用热量来创建必要的注册表项。该程序集是一个简单的虚拟Shell 上下文处理程序,它将上下文菜单添加到 .txt 结尾。

如果我使用Regasm注册它,则在此添加一个注册表项(不是唯一的,而是不同的)。请注意,它位于 txtfile 中。

[HKEY_CLASSES_ROOT\txtfile\shellex] [HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers] [HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\{1e25bcd5-f299-496a-911d-51fb901f7f40}] @="VBShellExtContextMenuHandler.FileContextMenuExt Class"

如果我使用热量,则不使用此txtfile。它使用 .txt

[HKEY_CLASSES_ROOT\.txt\shellex] [HKEY_CLASSES_ROOT\.txt\shellex\ContextMenuHandlers] [HKEY_CLASSES_ROOT\.txt\shellex\ContextMenuHandlers\{1e25bcd5-f299-496a-911d-51fb901f7f40}] @="VBShellExtContextMenuHandler.FileContextMenuExt Class"

regasm 生成的其他键似乎与 Heat 相同,但这个不是,这意味着菜单使用 Heat 键失败。

这是一个已知的热量问题吗?

我知道我可以简单地更改它,但这是一个测试,我需要添加大约 15 个扩展。

4

1 回答 1

0

查看帮助主题Regasm.exe (Assembly Registration Tool)中的一个陷阱。

请注意,.reg 文件不包含任何可由用户定义的寄存器函数进行的注册表更新。请注意,/regfile 选项仅发出托管类的注册表项。此选项不会发出 TypeLibID 或 InterfaceID 的条目。

我不能 100% 确定 Heat 与 Regasm 的交互,但我知道 InstallShield 的 .NET Com Interop 调用 Regasm /regfile 所以这个问题会适用。

就我个人而言,我只将这些工具用作我可以使用的众多工具之一来收集需求,将其全部整理出来,然后手动编写。

于 2014-09-02T18:43:30.930 回答