Visual Studio扩展编程中.vsct文件中的GUID和ID有什么区别?

时间:2016-02-04 12:19:52

标签: c# visual-studio-2013 visual-studio-2015 visual-studio-extensions

e.g。请考虑以下代码:

<Group guid="guidFirstCommandCmdSet" id="MyMenuGroup" priority="0x0600">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>

<Group guid="guidSecondCommandCmdSet" id="MyMenuGroup" priority="0x0600">
        <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
</Group>

在这里,为什么我们需要定义GUID和ID? ID =&#34; IDM_VS_MENU_TOOLS&#34;指的是Visual Studio中的“工具”菜单。 guid =&#34; guidSHLMainMenu&#34;有什么用?

还要考虑以下代码:

  <Button guid="guidSecondCommandCmdSet" id="cmdidSecondCommand" priority="2" type="Button">
    <Parent guid="guidSecondCommandCmdSet" id="MyMenuGroup"/>
    <Icon guid="guidImages" id="bmpPic2"/>
    <Strings>
      <ButtonText>XXX Command</ButtonText>
    </Strings>
  </Button>

我知道按钮的ID名为&#34; cmdidSecondCommand&#34;,但是按钮的GUID在哪里使用?我们已经在下一个元素中定义了按钮的Parent容器。

1 个答案:

答案 0 :(得分:4)

GUID顾名思义是{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} ID形式的IDGUID是密钥(或标识符);它用作常量,允许为数值赋予描述性名称。

由于MyMenuGroup背后的值并非在所有命令集(或图像条)上都是唯一的,因此IDM_VS_MENU_TOOLS用于将它们置于上下文中... guid和a的组合数值用于唯一标识组,菜单,工具栏,按钮,图像等...

在给定示例中,guidSecondCommandCmdSetguidSHLMainMenu可能具有相同的mumeric值,但guid <Group guid="guidSecondCommandCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> </Group> GUID会将它们置于上下文中......

ID

如果要为代码中的控件注册Execute-和QueryStatus处理程序,为按钮设置图标,将元素设置为关系,则需要@lcrcolumn_totalEXECUTE (' UPDATE facetswrk.dbo.ODS_SUBSC_PREM_REPORT ' + ' SET ' + @lcrcolumn_name + ' = @lcrcolumn_total') ;例如,将一个组添加到工具栏或菜单等等......