ソリューション エクスプローラーでソリューション/プロジェクトを右クリックすると、指定したツールを実行するコンテキスト メニューに新しい項目が表示されるように、VS2012 の .SLN/.CSPROJ ファイルに何かできますか?
[ツール] メニューにカスタム エントリを追加できることは知っていますが、この場合、ツールはその特定のソリューションに固有のものです。
ソリューション エクスプローラーでソリューション/プロジェクトを右クリックすると、指定したツールを実行するコンテキスト メニューに新しい項目が表示されるように、VS2012 の .SLN/.CSPROJ ファイルに何かできますか?
[ツール] メニューにカスタム エントリを追加できることは知っていますが、この場合、ツールはその特定のソリューションに固有のものです。
Solution
以下のように、アドインからコンテキスト メニューにボタンを追加できます。
Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["Solution"];
try
{
//Add a command to the Commands collection:
Command command = commands.AddNamedCommand2(_addInInstance, "MyAddinMenuBar", "MyAddinMenuBar", "Executes the command for MyAddinMenuBar", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);
//Add a control for the command to the solution context menu:
if (command != null)
{
command.AddControl(menuBarCommandBar, 1);
}
}
catch (System.ArgumentException)
{
// safely ignore the exception.
}
さまざまなソリューションのツールの仕様は、アドインによって内部的に処理される必要があります。ソリューションのフル パス ( から_applicationObject.Solution.FullName
) と、含まれているプロジェクトのプロパティ ( から) を抽出でき_applicationObject.Solution.Projects
ます。
を使用している場合は、コマンドとメニュー項目を追加するファイルをVSPackage
定義する必要があります。vsct