Всем доброго дня.
Я написал dll в вижуал(дотнет) студии в которой есть кнопка(BaseCommand) которая показывает выбранные объекты с карты, как в примере Dockable_Window. На моей машине все работает(в длл есть и др. инструменты).
Добавляю сетап проект, все как по учебнику.
На тестовой машине все сетапится, но кнопка никак не хочет работать, все остальное(мои инструменты) работет.
В реестре на класс реализующий IDockableWindowDef имеется гуид, такой какой я ему и назначил. Предполагаю, что IDockableWindowManager не может его найти по гуиду (dockWinMgr.GetDockableWindow(u)).
Вот код
[GuidAttribute("4DB24F9D-F3BA-429f-9229-36A363D50166")]
[ProgId("xx.GIScmdSelections")]
public class GIScmdSelections: BaseCommand
{
#region Register Unregister Component
[ComRegisterFunction()]
static void Reg(String regKey)
{
MxCommands.Register(regKey);
}
[ComUnregisterFunction()]
static void Unreg(String regKey)
{
MxCommands.Unregister(regKey);
}
#endregion
private IApplication m_app;
private IDockableWindow m_dockWin;
public GIScmdSelections()
{
m_caption = "Выбранные объекты карты";
m_category = "xx";
m_message = "Выбранные объекты карты";
//m_name = "SelectedFeatures";
m_toolTip = "Выбранные объекты карты";
m_bitmap = new Bitmap(GetType().Assembly.GetManifestResourceStream("xx.SelectionTree.bmp"));
}
public override void OnClick()
{
m_dockWin.Show(! m_dockWin.IsVisible());
}
public override void OnCreate(object hook)
{
if (hook is IMxApplication)
{
m_app = hook as IApplication;
IDockableWindowManager dockWinMgr = m_app as IDockableWindowManager;
UID u = new UID();
u.Value = "{EBF5348D-3326-4601-A8B2-550D543D7B0D}";
m_dockWin = dockWinMgr.GetDockableWindow(u);
//MessageBox.Show(m_dockWin.Name);
m_dockWin.Dock(esriDockFlags.esriDockRight);
}
}
Спасибо