10

私はVS2010とアドインを使用し、DTE.ExecuteCommandと、Build、Build.Cancel、Build.RebuildSolutionなどのコマンドを使用しています。

DTE.Commands.Item( "xxx")を使用してコマンドを取得し、それがCommand.IsAvailableで使用可能かどうかを推測できます。コマンドのリストは、[ツール]、[オプション]ウィンドウ、[環境]、[キーボード]セクションにあります。

ご存知のように、DTE.ExecuteCommandは2つの文字列をパラメーターとして受け取ります。

1つ目はコマンドの名前(たとえば、Action.CreateNewShortcut)で、2つ目はコマンドが取る引数です。

問題は、いくつかのコマンドが可変数の引数を必要とし、順序などがわからないことです。

たとえば、Action.CreateNewShortcutには、少なくとも2つの引数が必要だと思います。ショートカットの実行時に実行されるアクション(Build.RebuildSolution)とショートカット自体(Alt + O)です。

VSには4kを超えるコマンドがあります。しかし、Microsoftはそれに関する公式のドキュメントを持っていないと思います。

DTE.ExecuteCommandで使用可能なコマンドの完全なリストを含む公式ドキュメントがあれば非常に役立ちます。

助言がありますか?

4

4 に答える 4

7

即時ウィンドウを使用してそれを行うことができます。「>」と入力して、コマンドの入力を開始するだけです。

于 2013-07-01T08:23:54.407 に答える
6

質問は少し古いですが、最近同じことに遭遇しました。EnvDTE.DTE (こちら) の Commands コレクションを使用しました。これは、数行のパワー シェルで取得できます。あなたが言及したように、リストは非常に長いので、出力をフィルタリングしたい場合があります。

# Get Visual Studio 2015 type
# -- find other version in registry HKEY_CLASSES_ROOT\VisualStudio.DTE.x.x
$type = [System.Type]::GetTypeFromProgID("VisualStudio.DTE.14.0")
# Create an instance of EnvDTE.DTE - actually launches a devenv.exe process
$dte = [System.Activator]::CreateInstance($type,$true)
# list of Commands is output simply when typing : Can be very long
$dte.Commands
# Will output the name of the command, its GUID and other attributes
# Close process when done
$dte.Quit()
于 2016-12-21T15:13:56.843 に答える