Я использую этот код, чтобы добавить элемент в окне кода правой кнопкой мыши меню:VS2008 Addin добавить в меню
public void OnConnection(
object application,
ext_ConnectMode connectMode,
object addInInst,
ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
object[] contextGUIDS = new object[] { };
Command codeWindowCommand = null;
CommandBarControl codeWindowButton;
CommandBar codeCommandBar;
CommandBars commandBars;
try
{
codeWindowCommand = _applicationObject.Commands.Item(
_addInInstance.ProgID + "." + CODEWINDOW_COMMAND_NAME, 0);
}
catch
{
}
if (codeWindowCommand == null)
{
codeWindowCommand = _applicationObject.Commands.AddNamedCommand(
_addInInstance,
CODEWINDOW_COMMAND_NAME,
CODEWINDOW_COMMAND_NAME,
"Pastebin selected code",
true,
18,
ref contextGUIDS,
(int)vsCommandStatus.vsCommandStatusSupported +
(int)vsCommandStatus.vsCommandStatusEnabled);
}
commandBars = (CommandBars)_applicationObject.CommandBars;
codeCommandBar = commandBars["Code Window"];
codeWindowButton = (CommandBarControl)codeWindowCommand.AddControl(
codeCommandBar, codeCommandBar.Controls.Count + 1);
codeWindowButton.Caption = "Text for button";
codeWindowButton.TooltipText = "Tooltip for button";
}
и надстройка устанавливается в автозагрузку. Однако каждый раз при запуске VS2008 он добавляет еще одну кнопку в меню, пока я полностью не удалю добавление. Кто-нибудь знает, как я это исправить?
Я бы, например, обернул команду Command.AddControl() и позже в a, если это выполняется только в том случае, если кнопка еще не существует, но я не могу найти способ проверить это в API?
Я буду делать короткое исправление, а затем углубиться в эту информацию, когда получаю время. Большинство из того, что я мог найти, всегда делали это на этом ужасном языке, известном как vb.net, который был не слишком полезен, поэтому спасибо. – ewanm89
Я проверю, работает ли это завтра, или в понедельник, когда у меня будет время, так завтра. Много упаковки, чтобы сделать. – ewanm89
Спасибо, эти ссылки были большой помощью вместе с этим: http://www.mztools.com/articles/2006/MZ2006014.aspx – ewanm89