[VSIX] 第一次寫個簡單Visual Studio 外掛就上手
認識Visual Studio 好像也十幾年了,好像從頭到尾都是用別人寫得自己沒寫過擴充套件(外掛),好啦,其實,我以前寫過,這次重新寫的時候發現有點改變,所以今天筆記一下,先說一下今天要寫的基於平台是Visula Studio 2017 ,今天的目標是在 上面工具選單下面有一個自己創的選項,然後按下後會幫專案自動下載一個JQuery 檔案並且加入至專案
首先,你要開啟VSIX Project 專案
再來 新增 Custom Command 檔案
1. 改變 選單裡面的顯示文字,因為我預設新開的檔案叫做Comman1.cs 所以你可以在 Command1Package.vsct 中找到設定選單的名稱這邊我改變成當麻測試下載JQUERY至專案
2. 再來就是撰寫點擊後,下載並且加入至專案 ,在Command1.cs 你會看到 private void MenuItemCallback(object sender, EventArgs e) 他預設就有一個跳題示的視窗程式所以我們知道 可以透過
VsShellUtilities.ShowMessageBox( this.ServiceProvider, "MESSAGE", "TITLE", OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
來跳出提示視窗這時候我們必須要抓到他開啟的 方案 跟專案 ,並且從網路上下載後透過AddFromFileCopy 加入至專案,這邊是
C# code :
EnvDTE80.Solution2 solution; var dte = (EnvDTE.DTE)ServiceProvider.GetService(typeof(EnvDTE.DTE)); if (dte != null) { solution = (EnvDTE80.Solution2)dte.Solution; if (solution != null) { VsShellUtilities.ShowMessageBox( this.ServiceProvider, "開始下載JQuery至專案中", "Info", OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); if (solution.Projects.Count > 0) { Projects projects = solution.Projects; var list = new List<Project>(); var item = projects.GetEnumerator(); while (item.MoveNext()) { var project = item.Current as Project; WebClient wc = new WebClient(); wc.DownloadFile("https://code.jquery.com/jquery-3.2.1.min.js", Path.GetTempPath() + "jquery.js"); project.ProjectItems.AddFromFileCopy(Path.GetTempPath() + "jquery.js"); } } } }
這邊主要目的就是讓你建立可以跟你目前專案互動的方法,我知道這功能很沒用但是就是練習吧
有任何問題這邊有source code : https://github.com/donma/VSExtensionDemo1
reference :
https://msdn.microsoft.com/en-us/library/4y34x89h.aspx
http://www.wwwlicious.com/2011/03/29/envdte-getting-all-projects-html/
https://www.mztools.com/Articles/2014/MZ2014009.aspx
標籤:
.Net
,
C#
,
Visual Studio
,
VSIX
-- Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer. 如果這篇文章有幫助到您,簡單留個言,或是幫我按個讚,讓我有寫下去的動力...