为什么我的扩展程序的菜单项没有出现?

时间:2019-07-25 14:50:02

标签: visual-studio menu visual-studio-2017 visual-studio-extensions

我正在构建我的第一个VS扩展,以允许用户加密/解密mailSettings/smtp的{​​{1}}部分。

我希望在VS Tools主菜单中添加一个包含2个子项的菜单项:

web.config

Config Encryptor Encrypt Mail Settings Decrypt Mail Settings 文件的相关(希望)部分如下:

.vsct

在新的VS实例中调试扩展项目时,菜单项没有出现,这是我的错吗?

1 个答案:

答案 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 ConfigEncryptorMenuConfigEncryptorMenu's parent is ConfigEncryptorMenuGroup。纠正组和菜单之间的关系,即可解决此问题。