![Visual Studio Experimental Instance 和 VSIX template的細節設定介紹 Visual Studio Experimental Instance 和 VSIX template的細節設定介紹](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb(31).png)
在上篇([07]匯出template建立小總結,更好的建立方式介紹 VSIX)介紹了如何透過VSIX的方式建立一個Visual Studio(以下簡稱VS)的套件來安裝template。
在這篇則會針對測試用的Experimental Instance
和VSIX建立方式的一些小地方做延伸介紹。
VS Experimental Instance
之前透過匯出的方式建立template的時候有個討厭的地方是更新template比較麻煩,因為測試的時候會直接安裝到正常在使用的VS,可能會造成混亂。
因為擔心這種情況,所以在VS在預設執行VSIX的時候會開啟Experimental Instance
- 這個可以想象成和一般VS一樣,只是設定是和一般的分開。有點像是進入Windows可以有多個使用者,使用者和使用者之間的設定 不會互相干擾。
VS Experimental Instance的cache位置
還記得之前在介紹更新templatecache的時候有提到VS會有一個cache的地方儲存一些相關資訊([04]了解vstemplate來微調匯出的Template和強制VS更新Template的方式#更新template - 如何讓vs重新刷新)。Experimental Instance也有這個概念,位置在:%appdata%\Microsoft\VisualStudio\{VS版本}_{後面幾個奇怪數字}Exp
![cache的截圖位置 cache的截圖位置](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[1](28).png)
所以假設有需要手動清理cache可以到這個資料夾處理。
如何reset Experimental Instance
假設開發很多個VSIX或者甚至一些客制VS功能的套件導致Experimental Instance有點怪怪的情況下,可以reset Experimental Instance(把這個VS Experimental Instance還原到最一開始的情況)
可以透過在Windows 裡面搜索Reset the Visual Studio 2017 Expermiental Instance
,執行之後就會回到預設狀態。
![找到reset的執行cmd 找到reset的執行cmd](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[2](22).png)
如何手動執行Experimental Instance
假設有天希望直接測試有安裝的template,可以透過直接開啟VS Experimental Instance達到。
執行方式也很簡單,在Windows裡面搜索Start Experimental Instance of Visual Studio 2017
。
![開啟VS 2017 Experimental Instance 開啟VS 2017 Experimental Instance](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[3](19).png)
VSIX template和匯出Template的不同之處
當建立template從匯出改成用VSIX之後,有幾個地方需要注意一下:
- 如何設定template的
分類
- 是否能夠建立Multi Project(多專案)Template
- VS Experimental Instance沒有出現 - 注意tempalte路徑長度
如何設定template的分類
還記得如果是匯出Template的話,分類是依照放的資料夾結構來建立出分類,可是到了VSIX沒有辦法控制資料夾了阿,怎麼設定template出現的分類呢?
在Project Template的vstemplate
檔案,開啟Property
(可以用F4或者 右鍵 選擇 Property
),然後Category
那個欄位輸入要的分類。
如果分類有多層,就用反斜線\
區隔,例如:myVsix\test
。
![設定分類 設定分類](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[4](19).png)
是否能夠建立Multi Project (多專案) Template
可以的,做法其實和我們建立之前的Project Template方式一樣,只是這次buildAction
設定成為VSTemplate
會是根的那個。
![multi project template multi project template](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[5](12).png)
VS Experimental Instance沒有出現 - 注意tempalte路徑長度
如果run的時候VS Experimental Instance沒有出現 - 有可能有出現錯誤。
這個時候注意Error
那邊有沒有出現錯誤,例如Problem occurred while extracting the vsix to the experimental extensions path
![錯誤截圖 錯誤截圖](/posts/migrate/2017-09-04-buildYourOwnTemplate-vs-expermiental-instance-intro-and-VSIX-setting_Asset/image_thumb[6](9).png)
非常有可能是template裡面的路徑過長導致。如果VSIX的名稱很長,也有可能導致路徑過長。因為VS的cache路徑本身就蠻長的。
所以一定要注意路徑,尤其是有時候使用一些第三方套件,很有可能路徑過長導致有問題。
結語
在這篇介紹了VS的Experimental Instance和匯出Template不同之處的地方。
到這邊其實VSIX的template包裝方式基本上已經到一個段落(雖然還有Item Template的沒有介紹,不過概念是一樣的),會發現相較於匯出Template的方式,在管理上面和安裝上面變的更加簡單。
但是還是有些不便利的地方,這也就是SideWaffle
帶來的好處。
在下一篇將會對於vsix的這種方式的缺點和SideWaffle的一些基本介紹。