小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VS2013插件開(kāi)發(fā)

 ThinkTank_引擎 2015-03-24

一、功能描述


項(xiàng)目中有一個(gè)AppSettings.xml文件,當(dāng)這個(gè)文件有添加新元素的時(shí)候,將該添加的內(nèi)容自動(dòng)同步到其他目錄下的AppSettings.xml文件。


二、插件模板選擇


要開(kāi)發(fā)VS插件需要安裝SDK,安裝后在添加新項(xiàng)目->Visal C#->擴(kuò)展性下選擇要使用的插件模板,由于本功能是跟文本編輯有關(guān)的,所以選擇Editor Text Adornment模板,也可以選擇其他的模板進(jìn)行開(kāi)發(fā)。下面是兩個(gè)插件的示例:Visual Studio Text Editor ExtensionBuilding and publishing an extension for Visual Studio 2010


三、如何監(jiān)控編輯窗口的保存事件


可以通過(guò)ServiceProvider.GlobalProvider.GetService(Type type)方法來(lái)獲取DTE對(duì)象,要獲取該對(duì)象需要添加EnvDTE和Microsoft.VisualStudio.Shell.12.0程序集,這兩個(gè)程序集在【擴(kuò)展】項(xiàng)里,引用Microsoft.VisualStudio.Shell.12.0程序集的時(shí)候還需要添加該程序集依賴的其他程序集,編譯的時(shí)候可以知道需要添加哪些程序集。獲取DTE對(duì)象后可以訂閱DocumentEvemts對(duì)象的DocumentSaved事件。注意:要將DTE、Events、DocumentEvents這三個(gè)對(duì)象定義為全局變量,否則定義的事件不會(huì)生效,這是由于C#的垃圾回收機(jī)制造成的。


一下是關(guān)于如何獲取DTE對(duì)象和訂閱DocumentSaved事件的教程:Walkthrough: Accessing the DTE Object from an Editor Extension、VSIX Tutorial-Visual Studio events and Commands


四、在插件里彈出模態(tài)對(duì)話框


Modal Dialog Boxes for Visual Studio Extensions這是msdn上關(guān)于如何彈出模態(tài)窗口的教程,也可以直接使用WinForm窗口。在我開(kāi)發(fā)的插件里就是直接使用WinForm窗體。


五、Editor模板下如何在工具->選項(xiàng)里添加選項(xiàng)頁(yè)


在Visual Studio Package模板里可以很輕松的添加選項(xiàng)頁(yè),這是msdn上關(guān)于添加選項(xiàng)頁(yè)的文章Walkthrough: Creating an Options Page。但是在Editor模板里會(huì)比較麻煩一點(diǎn)。


Can I add an options menu to my VSIX extension without adding a VSPackage?這是stackoverflow上關(guān)于如何在非Package模板下添加選項(xiàng)頁(yè)的提問(wèn)。通過(guò)該問(wèn)題我們知道需要在項(xiàng)目里的source.extension.vsixmanifest文件添加<VsPackage>|%CurrentProject%|</VsPackage>元素,要添加該元素可以通過(guò)下圖所示添加



除此之外還需要修改csproj文件,將GeneratePkgDefFile和CopyBuildOutputToOutputDirectory元素修改為true,如果csproj文件里沒(méi)有這個(gè)兩個(gè)元素則添加進(jìn)去,最后一點(diǎn)要特別注意,IncludeAssemblyInVSIXContainer這個(gè)元素一定要添加到上述兩個(gè)元素之前,否則選項(xiàng)頁(yè)就不會(huì)顯示出來(lái)。此外,還需要在csproj文件里加上


<PropertyGroup>
    <RegisterWithCodebase>true</RegisterWithCodebase>
  </PropertyGroup>


此元素,否則會(huì)出現(xiàn)錯(cuò)誤。至此要添加選項(xiàng)頁(yè)的功能已經(jīng)可以實(shí)現(xiàn)了。


六、如果出現(xiàn)加載此屬性頁(yè)時(shí)如何處理


經(jīng)過(guò)第五步之后選項(xiàng)頁(yè)可以再工具->選項(xiàng)里顯示了,但有可能會(huì)出現(xiàn)"加載該屬性頁(yè)時(shí)出錯(cuò)"的錯(cuò)誤,此時(shí)則需要在source.extension.vsixmanifest文件繼續(xù)添加下圖的兩個(gè)選項(xiàng)



至此,以上是我在開(kāi)發(fā)VS插件的過(guò)程中遇到的問(wèn)題及解決方法,希望以上對(duì)要進(jìn)行VS插件開(kāi)發(fā)的同學(xué)有所幫助。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多