2017年9月4日 星期一

[打造自己的template-建立一致性程式碼][08]Visual Studio Experimental Instance 和 VSIX template的細節設定介紹

Visual Studio Experimental Instance 和 VSIX template的細節設定介紹
圖片來源:https://pixabay.com/en/annual-report-book-brochure-686343/

在上篇([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的截圖位置

所以假設有需要手動清理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
不確定reset的作用是不是就只是是把vs Experimental instance的cache資料夾的所有內容刪掉,但是如果執行完reset去cache看看,會發現整個資料夾是空的。

如何手動執行Experimental Instance

假設有天希望直接測試有安裝的template,可以透過直接開啟VS Experimental Instance達到。

執行方式也很簡單,在Windows裡面搜索Start Experimental Instance of Visual Studio 2017

開啟VS 2017 Experimental Instance
開啟VS 2017 Experimental Instance

VSIX template和匯出Template的不同之處

當建立template從匯出改成用VSIX之後,有幾個地方需要注意一下:

  1. 如何設定template的分類
  2. 是否能夠建立Multi Project(多專案)Template
  3. VS Experimental Instance沒有出現 - 注意tempalte路徑長度

如何設定template的分類

還記得如果是匯出Template的話,分類是依照放的資料夾結構來建立出分類,可是到了VSIX沒有辦法控制資料夾了阿,怎麼設定template出現的分類呢?

在Project Template的vstemplate檔案,開啟Property(可以用F4或者 右鍵 選擇 Property),然後Category那個欄位輸入要的分類。

如果分類有多層,就用反斜線\區隔,例如:myVsix\test

設定分類
設定分類

是否能夠建立Multi Project (多專案) Template

可以的,做法其實和我們建立之前的Project Template方式一樣,只是這次buildAction設定成為VSTemplate會是根的那個。

multi project template
multi project template

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的一些基本介紹。


沒有留言 :

張貼留言