VS2013插件开发

1、功能描述

项目中有一个AppSettings.xml文件,当这个文件有添加新元素的时候,将该添加的内容自动同步到其余目录下的AppSettings.xml文件。ide

2、插件模板选择

要开发VS插件须要安装SDK,安装后在添加新项目->Visal C#->扩展性下选择要使用的插件模板,因为本功能是跟文本编辑有关的,因此选择Editor Text Adornment模板,也能够选择其余的模板进行开发。下面是两个插件的示例:Visual Studio Text Editor ExtensionBuilding and publishing an extension for Visual Studio 2010工具

3、如何监控编辑窗口的保存事件

能够经过ServiceProvider.GlobalProvider.GetService(Type type)方法来获取DTE对象,要获取该对象须要添加EnvDTE和Microsoft.VisualStudio.Shell.12.0程序集,这两个程序集在【扩展】项里,引用Microsoft.VisualStudio.Shell.12.0程序集的时候还须要添加该程序集依赖的其余程序集,编译的时候能够知道须要添加哪些程序集。获取DTE对象后能够订阅DocumentEvemts对象的DocumentSaved事件。注意:要将DTE、Events、DocumentEvents这三个对象定义为全局变量,不然定义的事件不会生效,这是因为C#的垃圾回收机制形成的。visual-studio

一下是关于如何获取DTE对象和订阅DocumentSaved事件的教程:Walkthrough: Accessing the DTE Object from an Editor ExtensionVSIX Tutorial-Visual Studio events and Commandsui

4、在插件里弹出模态对话框

Modal Dialog Boxes for Visual Studio Extensions这是msdn上关于如何弹出模态窗口的教程,也能够直接使用WinForm窗口。在我开发的插件里就是直接使用WinForm窗体。spa

5、Editor模板下如何在工具->选项里添加选项页

在Visual Studio Package模板里能够很轻松的添加选项页,这是msdn上关于添加选项页的文章Walkthrough: Creating an Options Page。可是在Editor模板里会比较麻烦一点。插件

Can I add an options menu to my VSIX extension without adding a VSPackage?这是stackoverflow上关于如何在非Package模板下添加选项页的提问。经过该问题咱们知道须要在项目里的source.extension.vsixmanifest文件添加<VsPackage>|%CurrentProject%|</VsPackage>元素,要添加该元素能够经过下图所示添加orm

除此以外还须要修改csproj文件,将GeneratePkgDefFile和CopyBuildOutputToOutputDirectory元素修改成true,若是csproj文件里没有这个两个元素则添加进去,最后一点要特别注意,IncludeAssemblyInVSIXContainer这个元素必定要添加到上述两个元素以前,不然选项页就不会显示出来。此外,还须要在csproj文件里加上xml

<PropertyGroup>
<RegisterWithCodebase>true</RegisterWithCodebase>
</PropertyGroup>对象

此元素,不然会出现错误。至此要添加选项页的功能已经能够实现了。blog

6、若是出现加载此属性页时如何处理

通过第五步以后选项页能够再工具->选项里显示了,但有可能会出现"加载该属性页时出错"的错误,此时则须要在source.extension.vsixmanifest文件继续添加下图的两个选项

至此,以上是我在开发VS插件的过程当中遇到的问题及解决方法,但愿以上对要进行VS插件开发的同窗有所帮助。

相关文章
相关标签/搜索