搞一个command就花了4个小时,可以看出这个垃圾IDE的继承真是超级垃圾。
有时候command不见了、有时候点击一次消失了。有时候click没有反应。简直恶心。
先解决第一个问题,button灰色不可用。源代码:

IVisualStudio vs = VisualStudioManager.CreateVisualStudio(_applicationObject, _addInInstance);
vs.GetCommandBar(CommandBarType.MenuBar).Get("工具").AddButton("Pixysoft", "Pixysoft");
vs.GetCommandBar(CommandBarType.MenuBar).Get("工具").AddButton("Pixysoft", "Pixysoft");
之后发现button没有出现。如果打开vs,button是灰色的。原因在:

public void QueryStatus(string commandName, vsCommandStatusTextWanted neededText, ref vsCommandStatus status, ref object commandText)
{
if (neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone)
{
if (commandName == "Pixysoft.Applications.TestDrivens.Connect.Pixysoft.Applications.TestDrivens")
{
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled;
return;
}
}
}
{
if (neededText == vsCommandStatusTextWanted.vsCommandStatusTextWantedNone)
{
if (commandName == "Pixysoft.Applications.TestDrivens.Connect.Pixysoft.Applications.TestDrivens")
{
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled;
return;
}
}
}
这里竟然他妈的用了字符串判断button是否可用。只要改成我定义的button名字。