カスタム プロジェクト タイプに関連付けられたカスタム プロジェクト テンプレートを作成しました。このソリューションは、プロジェクトの MPF - Visual Studio 2012 フレームワークに大きく依存しています。
次にやりたいことは、このカスタム プロジェクト タイプのデフォルトの「ビルド」(F6) および「デバッグなしで開始」(ctrl + F6) イベントをオーバーライドすることです。ソリューション自体は、VSIX パッケージとして展開されます。
どんな助けでも大歓迎です。
カスタム プロジェクト タイプに関連付けられたカスタム プロジェクト テンプレートを作成しました。このソリューションは、プロジェクトの MPF - Visual Studio 2012 フレームワークに大きく依存しています。
次にやりたいことは、このカスタム プロジェクト タイプのデフォルトの「ビルド」(F6) および「デバッグなしで開始」(ctrl + F6) イベントをオーバーライドすることです。ソリューション自体は、VSIX パッケージとして展開されます。
どんな助けでも大歓迎です。
VSPackage の Visual Studio UI からのコマンドをインターセプトできます。これを行うには、目的の のイベントをサブスクライブする必要がありDTE.Events.CommandEvents
ます。GUID と Id を CommandEvents に渡す必要があります。
private void Initialize()
{
var dte = GetService(typeof(SDTE)) as EnvDTE.DTE;
_startCommandEvents = dte.Events.CommandEvents["{5EFC7975-14BC-11CF-9B2B-00AA00573819}", 295];
_startCommandEvents.BeforeExecute += OnLeaveBreakMode;
}
private void OnBeforeStartCommand(string guid, int id, object customIn, object customOut, ref bool cancelDefault)
{
//your event handler this command
}
イベント ハンドラーにはref bool cancelDefault
パラメーターがあり、VS コマンドをキャンセルする TRUE を渡してcancelDefault
、VS の動作をそれらに置き換えます。
GUID と Id コマンドを取得するには、VSIP ログ機能を使用できます。この機能を有効にするには、レジストリ キーの値を設定します。
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\<version>\General] "EnableVSIPLogging"=dword:00000001
Visual Studio IDE を再起動します。次に、Ctrl-Shift を使用してメニュー項目をクリックすると、次のようなメッセージが表示されます。
メッセージからの Guid および CmdID は、CommandEvents の必須パラメーターです。
新しい言語を実装する(新しいタイプのプロジェクトを作成する) 場合は、カスタム デバッグ エンジンと MSBuild の統合を追加する方が適切です。このような実装の例は、IronPythonまたはNemerleプロジェクトで確認できます。