项目中有一个AppSettings.xml文件,当这个文件有添加新元素的时候,将该添加的内容自动同步到其余目录下的AppSettings.xml文件。ide
要开发VS插件须要安装SDK,安装后在添加新项目->Visal C#->扩展性下选择要使用的插件模板,因为本功能是跟文本编辑有关的,因此选择Editor Text Adornment模板,也能够选择其余的模板进行开发。下面是两个插件的示例:Visual Studio Text Editor Extension和Building and publishing an extension for Visual Studio 2010工具
能够经过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 Extension、VSIX Tutorial-Visual Studio events and Commandsui
Modal Dialog Boxes for Visual Studio Extensions这是msdn上关于如何弹出模态窗口的教程,也能够直接使用WinForm窗口。在我开发的插件里就是直接使用WinForm窗体。spa
在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
通过第五步以后选项页能够再工具->选项里显示了,但有可能会出现"加载该属性页时出错"的错误,此时则须要在source.extension.vsixmanifest文件继续添加下图的两个选项
至此,以上是我在开发VS插件的过程当中遇到的问题及解决方法,但愿以上对要进行VS插件开发的同窗有所帮助。