項目中有一個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插件開發的同窗有所幫助。