文章阅读

隐藏侧栏

随便看看

Visual Studio Tools for Applications(VSTA)开发(二)

 

这个实例,我们要实现如下功能:
  1. 主窗体上点击按钮1,可以触发事件,打开一个基于此程序的IDE编程环境;
  2. 主窗体上点击按钮2,可以触发事件,在IDE编程环境中增加一个fun方法,如果此方法已经存在,则将光标定位到此方法;
  3. 主窗体上点击按钮3,可以触发事件,执行在IDE编程环境中编写的fun方法。
以上功能就满足了一个二次开发的基本要求,即主程序可以执行二次开发的代码,实现相应功能。
因为我使用的是Visual Studio 2005 Tools for Applications,所以就以此为例,当然现在微软已经发布了VSTA V2,是forVS2008的,也可通过一些处理使用在VS2005上。
前期装备工作:
  1. 安装VSTA SDK;
  2. 建立对象模型的proxy;
  3. 注册主程序;
  4. 创建模板。
首先是安装VSTA SDK,这个无需多说,有一点需要强调一下的是,装完SDK包后,需要安装%ProgramFiles%\Visual Studio 2005 Tools for Applications SDK\<Build Number>\VisualStudioToolsForApplications\SetupPackage\vsta_aide.msi,也可以在命令行模式下带参数安装msiexec /i vsta_aide.msi VSTAINVS=1,VSTAINVS=1这个参数表示可以用VS2005开发扩展功能,否则只可用VSTA的IDE进行开发。
安装完成之后需要进行建立相应的VS项目进行开发:
  • 我们先建立一个空项目VSTASample,添加一个空的类库VSTASample,将class1.cs改名成VSTAApplication.cs(这里只是方便理解,没有实际用途),编译生成dll;
  • 在项目文件夹下新建一个文件夹proxy(用来存放生成的proxy文件以及建立proxy工程);
  • 打开“Visual Studio 2005 命令提示符”窗口,切换至%ProgramFiles%\Visual Studio 2005 Tools for Applications SDK\<build number>\VisualStudioToolsForApplications\Tools\ProxyGen\x86\
  • 输入proxygen.exe /l:"%项目目录%\VSTASample\VSTASample\bin\Debug\VSTASample.dll" /c:"%项目目录%\VSTASample\VSTASample\proxy\Proxy.cs" /o:"%项目目录%\VSTASample\VSTASample\proxy\VSTASampleOM.xml" /f      回车;
  • 用记事本中打开“VSTASampleOM.xml”描述文件,在类元素的结尾“isStatic="false"”之后添加以下属性:
    isAddInEntryPoint="true“, 保存MyVSTAOM.xml并关闭;
  • 再次在命令行输入proxygen.exe /l:"%项目目录%\VSTASample\VSTASample\bin\Debug\VSTASample.dll" /c:"%项目目录%\VSTASample\VSTASample\proxy\Proxy.cs" /i:"%项目目录%\VSTASample\VSTASample\proxy\VSTASampleOM.xml" /f   回车,这里输出参数(/o)被改成了输入参数(/i)
  • 接下来就简单了,建立一个proxy类库工程,把生成的proxy.cs文件添加进去,添加程序集Microsoft.VisualStudio.Tools.Applications.Adapter
    Microsoft.VisualStudio.Tools.Applications.Contract
    System.AddIn.Contract
  • 为proxy类库工程程序集强名称,编译生成proxy.dll;
    • 简单说下强名称,打开工程的属性页,进入属性的签名标签
    • 在标记页面,选择为程序集签名
    • 选择强名称密钥文件列表,选择“新建”
    •  
    • 在文件名键中输入key.snk
    • 去除“设定密码保护密钥文件”选项,点击OK
    •  
  • 将proxy.dll添加至程序集缓存
    • 控制面板——>管理工具——>Microsoft .NET Framework 2.0 配置——>管理程序集缓存——>添加
    •  
到这里,proxy的建立就全部完成了,项目如图所示:
VSTA

评论

  • 正在载入评论...
刷新评论

相关文章

本类文章