結局のところ、私は間違っていました。 外部ツールがVisual Studioの機能を迅速に拡張する多くのシナリオがあります。
ちょうど昨日、私の親友が質問をしました-Visual Studio 2010パッケージのPowerCommandsからOpen Containing Folderコマンドを作成し、 Windows ExplorerではなくFar Managerを起動する方法を教えてください。 オリジナルでは、このコマンドはソリューションエクスプローラーのコンテキストメニューで使用できます。Windowsエクスプローラーを開き、呼び出されたファイルにカーソルを設定します。
私の最初のアイデア(簡単なことはありません-Visual StudioギャラリーからPowerCommands.vsixをダウンロードし、解凍し、 Reflectorで解析し、 Visual Studio拡張ガイドでカバーし、すぐにアナログを書く必要があります)これはエディターの拡張ではありません))はまだ非常に重要なタスクであり、経験がなければ、例やステップバイステップのマニュアルでも、その解決策は半日以上かかります-1日ではないにしても!
少し考えてから、 外部ツールメカニズムがこれらの目的に非常に適していると判断しました。 そして、実際、 FARにOpen Containing Folderの 「チーム」を作成するのに30分もかかりませんでした。
これがどのように行われるかを見てみましょう。
外部ツールを登録する
最初のステップは、新しい外部ツールを登録することです。
Visual Studioで外部ツールを管理するための外部ツールウィンドウがあります( メインメニュー > ツール > 外部ツール ...):
新しいツールを追加するには、[ 追加 ]ボタンをクリックして、いくつかのパラメーターを指定します。
タイトル :FARに含まれるフォルダーを開く
コマンド :「C:\ Program Files \ Far2 \ Far.exe」
引数 :$(ItemPath)
この場合の初期ディレクトリパラメータは空白のままにすることができます。
引数と初期ディレクトリパラメータに使用できる引数のリストは、MSDNライブラリのVisual Studioの外部ツール/外部ツールの引数にあります 。 さらに、ボタンをクリックすると開く特別なメニューを使用できます 。
ここに私が終わったものがあります:
[ 外部ツール]ウィンドウを閉じた後、 [ メインメニュー] > [ ツール ] メニューに [ FARに含まれるディレクトリを開く ]項目が表示されます。 このアイテムを選択すると、 Far Managerが起動し、カーソルが次の場所を指します。
- エディターで開かれたファイル-エディターからメニューにアクセスした場合。
- ソリューションエクスプローラーで選択したファイル- ソリューションエクスプローラーからメニューにアクセスした場合。
CMDスクリプトの実行
次の図に、 FARコマンドでディレクトリを開くの結果を示します。 そして、この結果は、控えめに言っても、印象的ではありません... 私のFar Managerは、異なるウィンドウサイズで動作するように構成されています。
通常のサイズのウィンドウを開くには、小さなスクリプトを作成する必要があります。
mode con cols=132 lines=59 "C:\Program Files\Far2\Far.exe" %*
このスクリプトをVisual Studioから実行するには、ディスクに保存し( C:\ psg \ Tools \ VSOpenInFAR \ VSOpenInFAR.cmdという名前で保存します )、このスクリプトを指すようにCommandパラメーターを変更する必要があります。
これで結果は非常に満足できるものになりました。FarManagerウィンドウには通常のサイズがあります。
ご注意
Visual Studioはcmd.exeを使用してCMDスクリプトを実行し、次の形式で呼び出します。
cmd.exe /c ""C:\psg\Tools\VSOpenInFAR\VSOpenInFAR.cmd" "C:\psg\...\Class2.cs""
[終了時に閉じる ]オプションがチェックされていない場合、呼び出しフォームはわずかに変更されます。
cmd.exe /c ""C:\psg\Tools\VSOpenInFAR\VSOpenInFAR.cmd" "C:\psg\...\Class2.cs" & pause"
これは、引用符とスクリプト完了コードの問題を回避するために留意する必要があります!
コンテキストメニューから外部ツールを呼び出す
さて、実行可能なツールが手に入りました。これで、グッズの追加を開始できるようになりました。たとえば、 FAR呼び出しで[フォルダーを開く ]をソリューションエクスプローラーのコンテキストメニューに追加します。
これには以下が必要です。
- [ カスタマイズ]ウィンドウを開きます( メインメニュー > [ ツール ] > [ カスタマイズ...] )。
- [ コマンド ]タブに移動します。
- [ 並べ替えるメニューまたはツールバーを選択]セクションで、[ コンテキストメニュー]を選択し、[ プロジェクトとソリューションのコンテキストメニュー ]を選択します。 アイテム
次のステップは、新しいメニュー項目に適切な位置を選択することです。 Open Containing Folderアイテムの隣に配置することにしました。
ここで、選択した位置に新しいメニュー項目を挿入する必要があります。このためにコマンドの追加ボタンが設計されており、同じ名前のウィンドウが表示されます。
このウィンドウでは、[ ツール]カテゴリを選択し、[ 外部コマンド6]コマンドを指定する必要があります。残念ながら、 外部ツールを起動するコマンドはシリアル番号でしか識別できません。 [OK]をクリックすると、コンテキストメニューに新しいアイテムが表示されます- 外部コマンド6 。
最後の手順は、メニュー項目の名前を変更することです。 これを行うには、 [選択の変更 ]ボタンをクリックし、 [ 名前]フィールドでツールの名前を指定します-FARに含まれるフォルダーを開きます。
これらの操作の結果を以下に示します- ソリューションエクスプローラーのコンテキストメニューで[FARでフォルダーを開く ]項目を使用できます。
追加情報
外部ツールの使用に関する追加情報は、MSDNで入手できます。