在上篇([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可以到這個資料夾處理。
如何reset Experimental Instance
假設開發很多個VSIX或者甚至一些客制VS功能的套件導致Experimental Instance有點怪怪的情況下,可以reset Experimental Instance(把這個VS Experimental Instance還原到最一開始的情況)
可以透過在Windows 裡面搜索Reset the Visual Studio 2017 Expermiental Instance
,執行之後就會回到預設狀態。
如何手動執行Experimental Instance
假設有天希望直接測試有安裝的template,可以透過直接開啟VS Experimental Instance達到。
執行方式也很簡單,在Windows裡面搜索Start Experimental Instance of Visual Studio 2017
。
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
。
是否能夠建立Multi Project (多專案) Template
可以的,做法其實和我們建立之前的Project Template方式一樣,只是這次buildAction
設定成為VSTemplate
會是根的那個。
VS Experimental Instance沒有出現 - 注意tempalte路徑長度
如果run的時候VS Experimental Instance沒有出現 - 有可能有出現錯誤。
這個時候注意Error
那邊有沒有出現錯誤,例如Problem occurred while extracting the vsix to the experimental extensions path
非常有可能是template裡面的路徑過長導致。如果VSIX的名稱很長,也有可能導致路徑過長。因為VS的cache路徑本身就蠻長的。
所以一定要注意路徑,尤其是有時候使用一些第三方套件,很有可能路徑過長導致有問題。
結語
在這篇介紹了VS的Experimental Instance和匯出Template不同之處的地方。
到這邊其實VSIX的template包裝方式基本上已經到一個段落(雖然還有Item Template的沒有介紹,不過概念是一樣的),會發現相較於匯出Template的方式,在管理上面和安裝上面變的更加簡單。
但是還是有些不便利的地方,這也就是SideWaffle
帶來的好處。
在下一篇將會對於vsix的這種方式的缺點和SideWaffle的一些基本介紹。
沒有留言 :
張貼留言