我使用這個代碼添加到代碼窗口中的項目右鍵菜單:VS2008加載項添加到菜單
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()和後來的東西在一個如果只執行如果按鈕不存在,但我似乎無法找到一種方法來檢查這在API中?
我會勉強做一個短期修復,然後在我得到時間時深入研究這些信息。我能找到的大部分內容都是用這種叫做vb.net的可怕語言來處理的,這個語言並不是很有用,所以謝謝。 – ewanm89 2009-09-19 20:55:56
明天我會檢查它的工作,或者我有時間的星期一,明天就這樣去做。很多包裝要做。 – ewanm89 2009-09-19 20:57:09
謝謝,這些鏈接與這一個很大的幫助:http://www.mztools.com/articles/2006/MZ2006014.aspx – ewanm89 2009-09-25 01:23:15