Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[打造自己的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的一些基本介紹。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus