zoukankan      html  css  js  c++  java
  • 使用VSTA定制二次开发IDE(一)

    Visual studio tools for application是微软免费提供的方便开发人员定制应用程序的工具。通过在开发人员发布的应用程序中集成.Net framework和可再次分发的IDE,我们的最终用户可以使用VB.net和C#开发插件,最终改变应用程序的行为。其效果与office的VBA是一样的,而且office2007就是基于VSTA做的扩展。

    想在应用程序中集成IDE主要的步骤是:

    1、定义宿主程序(我们的主应用程序)暴露给插件程序的对象模型,宿主程序可以是.Net应用程序,也可以是基于Com的应用程序。这个步骤产生像Excel或Word的对象模型。

    2、为二次开发IDE创建VB.Net或C#的工程模板,应用程序的最终用户将使用这些模板创建二次开发用的工程。(目前不清楚VSTA是否支持语言扩展,如果支持的话,我们就可以定义自己的领域语言-DSL,这样最终用户可以使用领域语言进行二次开发了)

    3、定义插件的发现和加载机制,使得我们的应用程序可以顺利加载最终用户编写的插件。

    4、把可再次分发的VSTA IDE合并到我们的应用程序中,使得最终用户可以在应用程序中启动IDE。

    5、制作打包程序,分发应用程序。

    为了有一个直观的影响,并了解使用VSTA的简单性,下面描述的是最简化的实现启动VSTA IDE的步骤,其中省略了定义对象模型和工程模板等主要步骤,所以这些步骤完成后并不能供用户二次开发。

    1、创建一个Console应用程序,添加引用:

    两个Com引用

    image

    image

    一个.Net Library引用

    image

    2、编写代码

    添加引用

    using VSTADTEProvider.Interop;
    using EnvDTE;

    添加静态变量,及启动代码。

    private static DTE vstaDTE;

    private static void startIDE()
    {
        IDTEProvider dteProvider = new VSTADTEProviderClass();
        string HostID = "Hello";
        UInt32 TimeOut = 10000;
        vstaDTE = dteProvider.GetDTE(HostID, TimeOut);
        vstaDTE.MainWindow.Visible = true;
    }

    然后在main函数中调用。

    3、光有以上步骤还不能运行,需要配置一些额外环境。

    打开注册表:regedit

    在【HKEY_LOCAL_MACHINE\Software\Microsoft\VSTAHostConfig】添加键值

    image 2.0项下添加如图所示的键image

    其中ProjectTemplateLocation指向一个现有的工程模板。

    打开Visual Studio 2008 命令行窗口,转到路径: %ProgramFiles%\Microsoft Visual Studio 9\Common7\IDE\,运行 【vsta.exe /hostid hello /setup】

    4、运行刚才建立的控制台应用程序,效果如下:刚才建立的HostID是Hello

    image

    后续的文章将会补全建立完整的二次开发IDE。

  • 相关阅读:
    jQuery(四)
    jQuery(三)
    jQuery(二)
    jQuery(一)
    JS(四)
    JS(三)
    JS(二)
    类似openDialog的弹窗
    vue的异步组件按需加载
    vue实现点击、滑动右侧字母对应各个城市
  • 原文地址:https://www.cnblogs.com/77543/p/1423324.html
Copyright © 2011-2022 走看看