1

基本的に、次のように、Visual Studio パッケージ プロジェクトのファイルに正しい値guidid属性が必要です。.vsct

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

上記は、デフォルトのプロジェクト テンプレートから直接取得したもので、[ツール] メイン メニューにコマンドを追加します。ADO.NET Entity Data Model Designer コンテキスト メニューの guid:id 値、「データベースからモデルを更新...」などの値はどこで見つけることができますか (またはどのようにスニッフィングしますか?)

質問する前に: VS 2010 エンティティ デザイナーの 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 に答える