Visual Studioには外部ツールもあります...

おもしろいですが、長い間、 Visual Studioからサードパーティのアプリケーションを実行する能力は注目に値すると思いませんでした。 深刻な統合にはプラグインの開発が必要です。それだけです!

結局のところ、私は間違っていました。 外部ツールVisual Studioの機能を迅速に拡張する多くのシナリオがあります。

ちょうど昨日、私の親友が質問をしました-Visual Studio 2010パッケージのPowerCommandsからOpen Containing Folderコマンドを作成し、 Windows ExplorerではなくFar Managerを起動する方法を教えてください。 オリジナルでは、このコマンドはソリューションエクスプローラーのコンテキストメニューで使用できます。Windowsエクスプローラーを開き、呼び出されたファイルにカーソルを設定します。

私の最初のアイデア(簡単なことはありません-Visual StudioギャラリーからPowerCommands.vsixをダウンロードし、解凍し、 Reflectorで解析し、 Visual Studio拡張ガイドでカバーし、すぐにアナログを書く必要があります)これはエディターの拡張ではありません))はまだ非常に重要なタスクであり、経験がなければ、例やステップバイステップのマニュアルでも、その解決策は半日以上かかります-1日ではないにしても!

少し考えてから、 外部ツールメカニズムがこれらの目的に非常に適していると判断しました。 そして、実際、 FAROpen Containing Folderの 「チーム」を作成するのに30分もかかりませんでした。

これがどのように行われるかを見てみましょう。

外部ツールを登録する


最初のステップは、新しい外部ツールを登録することです。

Visual Studioで外部ツールを管理するための外部ツールウィンドウがあります( メインメニュー > ツール > 外部ツール ...):


新しいツールを追加するには、[ 追加 ]ボタンをクリックして、いくつかのパラメーターを指定します。

タイトル :FARに含まれるフォルダーを開く
コマンド :「C:\ Program Files \ Far2 \ Far.exe」
引数 :$(ItemPath)

この場合の初期ディレクトリパラメータは空白のままにすることができます。

引数初期ディレクトリパラメータに使用できる引数のリストは、MSDNライブラリのVisual Studioの外部ツール/外部ツールの引数にあります 。 さらに、ボタンをクリックすると開く特別なメニューを使用できます

ここに私が終わったものがあります:


[ 外部ツール]ウィンドウを閉じた後、 [ メインメニュー] > [ ツール ] メニューに [ FARに含まれるディレクトリを開く ]項目が表示されます。 このアイテムを選択すると、 Far Managerが起動し、カーソルが次の場所を指します。
  1. エディターで開かれたファイル-エディターからメニューにアクセスした場合。
  2. ソリューションエクスプローラーで選択したファイル- ソリューションエクスプローラーからメニューにアクセスした場合。

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 Studiocmd.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呼び出しで[フォルダーを開く ]をソリューションエクスプローラーのコンテキストメニューに追加します。

これには以下が必要です。
  1. [ カスタマイズ]ウィンドウを開きます( メインメニュー > [ ツール ] > [ カスタマイズ...] )。
  2. [ コマンド ]タブに移動します。
  3. [ 並べ替えるメニューまたはツールバーを選択]セクションで、[ コンテキストメニュー]を選択し、[ プロジェクトとソリューションのコンテキストメニュー ]を選択します アイテム

次のステップは、新しいメニュー項目に適切な位置を選択することです。 Open Containing Folderアイテムの隣に配置することにしました。


ここで、選択した位置に新しいメニュー項目を挿入する必要があります。このためにコマンド追加ボタンが設計されており、同じ名前のウィンドウが表示されます。


このウィンドウでは、[ ツール]カテゴリを選択し、[ 外部コマンド6]コマンドを指定する必要があります。残念ながら、 外部ツールを起動するコマンドはシリアル番号でしか識別できません。 [OK]をクリックすると、コンテキストメニューに新しいアイテムが表示されます- 外部コマンド6


最後の手順は、メニュー項目の名前を変更することです。 これを行うには、 [選択変更 ]ボタンをクリックし、 [ 名前]フィールドでツールの名前を指定します-FARに含まれるフォルダーを開きます。


これらの操作の結果を以下に示します- ソリューションエクスプローラーのコンテキストメニューで[FARでフォルダーを開く ]項目を使用できます。


追加情報


外部ツールの使用に関する追加情報は、MSDNで入手できます。
  1. Visual Studioの外部ツール
  2. 外部ツールの引数

Source: https://habr.com/ru/post/J118354/


All Articles