以编程方式将用户控件添加到工具箱时出现问题

本文关键字:工具箱 问题 添加 方式 编程 用户 控件 | 更新日期: 2023-09-27 17:56:07

Hi我正在尝试以编程方式向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);

以编程方式将用户控件添加到工具箱时出现问题

上面的代码工作正常。唯一的问题是我必须以管理员权限运行应用程序。即使这样它也在工作。

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