我正在构建我的第一个VS扩展,以允许用户加密/解密mailSettings/smtp
的{{1}}部分。
我希望在VS Tools主菜单中添加一个包含2个子项的菜单项:
web.config
Config Encryptor
Encrypt Mail Settings
Decrypt Mail Settings
文件的相关(希望)部分如下:
.vsct
在新的VS实例中调试扩展项目时,菜单项没有出现,这是我的错吗?
答案 0 :(得分:0)
有可能是因为您定义了menu
的ID为ConfigEncryptorMenu
的同时也定义了group
的ID为ConfigEncryptorMenu
的结构
让我们定义一个名为GroupForSubMenu
的新IDSymbol:
<GuidSymbol name="guidEncryptConfigCommandPackageCmdSet" value="{2c763b06-e83f-4c03-8fc6-3a00416b361e}">
......
<!-- New IDSymbol -->
<IDSymbol name="GroupForSubMenu" value="0x1050" />
</GuidSymbol>
然后将第一个组的内容更改为:
<Group guid="guidEncryptConfigCommandPackageCmdSet" id="GroupForSubMenu" priority="0x0200">
<Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS" />
</Group>
从以下位置更改<Parent>
部分中Menu
的值:
<Parent guid="guidEncryptConfigCommandPackageCmdSet" id="ConfigEncryptorMenuGroup" />
到<Parent guid="guidEncryptConfigCommandPackageCmdSet" id="GroupForSubMenu" />
MenuText不是必需的,原始父关系似乎类似于ConfigEncryptorMenuGroup's parent is ConfigEncryptorMenu
而ConfigEncryptorMenu's parent is ConfigEncryptorMenuGroup
。纠正组和菜单之间的关系,即可解决此问题。