Я довольно застрял с проблемой, которую я обнаружил при попытке перенести пакет из Visual Studio 2008 на 2010, и подумал, есть ли у кого-нибудь какие-либо идеи, пожалуйста, обратите внимание, что работал в Visual Studio 2008, и яне знаю, почему он не работает в 2010 году,
фрагмент кода здесь:
IVsUIShell uiShell = (IVsUIShell)TestPackage.GetGlobalService(typeof (SVsUIShell));
Guid context = GuidList.GUIDTestMarkerCmdSet;
POINTS[] menuPos = new POINTS[1];
menuPos[0].x = (short)Cursor.Position.X;
menuPos[0].y = (short)Cursor.Position.Y;
var hr = uiShell.ShowContextMenu(0, ref context,(int)PkgCmdIDList.ContextMenu, menuPos, this); //access violation happens here.
if (hr != VSConstants.S_OK)
return VSConstants.S_FALSE;
break;
Контекст uiShell, насколько я могу судить, является указателем vaild com, и я могу вызватьдругие методы на нем без его взрыва.
Я думаю, что это связано с настройкой контекстного меню в файле xml vsct.Отдельные части которых можно увидеть ниже.
<Groups>
<Group guid="guidTestMarkerCmdSet" id="ContextGroup" priority="0x100" >
<Parent guid="guidTestMarkerCmdSet" id="ContextMenu"/>
</Group>
</Groups>
<Menus>
<Menu guid="guidTestMarkerCmdSet" id="ContextMenu" type="Context">
<Parent guid="guidTestMarkerCmdSet" id="0"/>
<Strings>
<ButtonText>Test Runner Context Menu</ButtonText>
<CommandName>TestRunnerContextMenu</CommandName>
</Strings>
</Menu>
</Menus>
<Buttons>
<Button guid="guidTestMarkerCmdSet" id="cmdRunTest" priority="0x1" type="Button">
<Parent guid="guidTestMarkerCmdSet" id="ContextGroup"/>
<Strings>
<ButtonText>Run Test</ButtonText>
<CommandName>cmdRunTest</CommandName>
</Strings>
</Button>
<Button guid="guidTestMarkerCmdSet" id="cmdDebugTest" priority="0x1" type="Button">
<Parent guid="guidTestMarkerCmdSet" id="ContextGroup"/>
<Strings>
<ButtonText>Debug Test</ButtonText>
<CommandName>cmdDebugTest</CommandName>
</Strings>
</Button>
любая помощь будет весьма востребована, я довольно взволнован atm
Спасибовы