проблемы с IDockableWindowDef

0 голосов
спросил 22 Июнь, 06 от filippov70 (5,320 баллов) в категории Программные продукты Esri
Всем доброго дня.

Я написал 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);
               
            }
        }

Спасибо

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...