Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 如何在ADO.NET实体数据模型设计器的上下文菜单中添加命令?_Visual Studio 2010_Ado.net Entity Data Model_Vspackage_Visual Studio Extensions - Fatal编程技术网

Visual studio 2010 如何在ADO.NET实体数据模型设计器的上下文菜单中添加命令?

Visual studio 2010 如何在ADO.NET实体数据模型设计器的上下文菜单中添加命令?,visual-studio-2010,ado.net-entity-data-model,vspackage,visual-studio-extensions,Visual Studio 2010,Ado.net Entity Data Model,Vspackage,Visual Studio Extensions,基本上,我需要Visual Studio包项目的.vsct文件中guid和id属性的正确值,如下所示: <Group guid="guidVSPackage1CmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/> </Group> 以上内容直接来自默认项目模板,并向“工具”主菜单添加了一个命令。我在哪里可以找到或

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

<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映射关联之间进行转换。

明白了。您需要使用vsct.exe从VS2010 SDK目录中反编译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" />

明白了。您需要使用vsct.exe从VS2010 SDK目录中反编译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" />

谢谢你发布这个答案。是的,现在在VS2012为我工作。我看到你在3小时内找到了自己问题的答案!这打败了我,因此我在这里寻找。感谢您发布此答案。是的,现在在VS2012为我工作。我看到你在3小时内找到了自己问题的答案!这打败了我,因此我在这里寻找。谢谢