Проблема с добавлением пользовательских элементов управления на панель инструментов программно - PullRequest
3 голосов
/ 12 мая 2011

Привет Я пытаюсь добавить новую вкладку и мои элементы управления программно в Visual Studio 2010.

Это вкладка создания, но не добавляются элементы управления на вкладку.

       //Getting design time environment
        DTE DesignTimeEnvironment = (DTE)Activator.CreateInstance(Type.GetTypeFromProgID("VisualStudio.DTE.10.0"), true);
        //Getting tool box object
        ToolBox VSToolBox = (ToolBox)DesignTimeEnvironment.Windows.Item("{B1E99781-AB81-11D0-B683-00AA00A3EE26}").Object;
        ToolBoxTab MyTab = null;
        string TabName = "MyComponents";


    //checkin if Tab already exists
    foreach (ToolBoxTab VSTab in VSToolBox.ToolBoxTabs)
    {
        if (VSTab.Name == TabName)
        {
            MyTab = VSTab;
            break;
        }
    }

    //If tab doesn't exist, creating new one
    if (null == MyTab)
        MyTab = VSToolBox.ToolBoxTabs.Add(TabName);

    MyTab.Activate();
    ToolBoxItem tbi = MyTab.ToolBoxItems.Add("FileBrowser",
    @"MyComponents.FileBrowser, MyTestComps, Version=1.0.0.1, Culture=neutral, PublicKeyToken=2283de3658476795",
    vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);

    DesignTimeEnvironment.Quit();

Если я запускаю от имени администратора, все работает нормально, добавляя элементы управления в библиотеку элементов управления, но когда я пытаюсь добавить библиотеку, которой нет в GAC, она не работает. Это не исключение. Пример:

ToolBoxItem tbi = MyTab.ToolBoxItems.Add("FileBrowser",
    @"C:\MyComponents\MyTestComps.dll",
    vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent);

1 Ответ

0 голосов
/ 13 мая 2011

Работает нормально с приведенным выше кодом.Единственная проблема была в том, что я должен был запустить приложение с правами администратора.Даже так и работает.

ToolBoxItem tbi = MyTab.ToolBoxItems.Add("FileBrowser",
     @"C:\MyComponents\MyTestComps.dll",
     vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent); 

или http://blogs.msdn.com/b/quanto/archive/2009/06/12/how-do-i-deploy-a-toolbox-control-as-a-vsix.aspx

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