Я знаю, что уже есть некоторые темы по этому поводу, но я просто не буду работать для меня.
Что я хочу: мне нужна новая запись в контекстном меню проводника управления источниками Visual Studio.Для этого я запустил новый проект надстройки.
Что я использовал: я использовал эту статью в качестве руководства.http://blogs.msdn.com/b/team_foundation/archive/2010/06/24/extending-work-item-tracking-context-menus.aspx
Что не работает: я не получаю никаких исключений, меню просто не будет отображаться, независимо от того, где я его добавлю.
Некоторые фрагменты кода:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
if(connectMode == ext_ConnectMode.ext_cm_UISetup)
{
AddCommandToContextMenu(
"Team Project", // context menu Name
"ClearQuery", // menu reference name
"Clear", // display name
47, // command icon
1); // command placement, 1= first item on top
}
}
Я использую название меню «Team Project» для тестирования.VSIPLogging говорит мне, что это название меню, если я сделаю щелчок правой кнопкой мыши на нашем командном проекте TFS.Я также безуспешно пробовал другие меню.
Вот функции AddCommandToContextMenu:
private void AddCommandToContextMenu(string menuName, string commandName, string commandText, int iconId, int position)
{
CommandBar contextMenu = ((CommandBars)_applicationObject.CommandBars)[menuName];
AddCommand(contextMenu, commandName, commandText, iconId, position);
}
private void AddCommand(CommandBar parent, string commandName, string commandText, int iconId, int position)
{
Commands2 commands = (Commands2)_applicationObject.Commands;
//create the command
Command newCommand = commands.AddNamedCommand2(_addInInstance, commandName, commandText, commandText, true, iconId);
// add it to parent menu
newCommand.AddControl(parent, position);
}
Панель команд "parent" дает мне довольно много исключений, если я присмотрюсь к ней:
accChildCount = 'parent.accChildCount' вызвал исключение типа 'Microsoft.VisualStudio.PlatformUI.Automation.DeprecatedException'
То же самое для каждого другого значения "acc".
Теперь я действительно не знаю, что я сделал неправильно или что еще я мог попытаться сделать эту работу.Все, что я хочу сделать, это иметь пункт контекстного меню в проводнике управления исходным кодом, который должен вызывать из командной строки электроинструмента exe для вызова его функции «отменить неизмененные».