1

基本上,我需要Visual Studio 包项目文件中的正确值guidid属性,如下所示:.vsct

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

以上内容直接来自默认项目模板,并在工具主菜单中添加了一个命令。我在哪里可以找到(或如何嗅探)ADO.NET 实体数据模型设计器上下文菜单的 guid:id 值,即带有“从数据库更新模型...”的菜单等等?

在你问之前:VS 2010 Entity Designer 中的 MEF 可扩展性选项不涵盖我的场景 - 我需要实现一个命令来在独立和 FK 映射关联之间进行转换。

4

1 回答 1

5

知道了。您需要使用VS2010 SDK目录中的vsct.exe对Microsoft.Data.Entity.Design.Package.dll中已编译的命令表进行反编译(只需使用Reflector提取EntityDesigner.ctmenu,将其重命名为EntityDesigner.cto然后运行vsct.exe通过EntityDesigner.cto 的路径作为唯一参数)。要在打开上下文菜单时加载另一个 VSPackage,您至少需要使用DynamicVisibility标志声明它们,如下所示:

<Button guid="guidVSPackage1CmdSet" id="cmdidMyCommand"
        priority="0x0100" type="Button">
  <Parent guid="guidVSPackage1CmdSet" id="MyMenuGroup" />
  <Icon guid="guidImages" id="bmpPic1" />
  <CommandFlag>DynamicVisibility</CommandFlag>
  <Strings>
    <CommandName>cmdidMyCommand</CommandName>
    <ButtonText>My Command name</ButtonText>
  </Strings>
</Button>

实际的 ID 是:

<GuidSymbol name="guidCmdSetEntityDesigner"
       value="{11ac0a76-365e-490d-abad-e44e52897c7d}">
  <IDSymbol name="menuidContext" value="0x00010000" />
于 2012-04-25T10:39:43.887 回答