2019年2月3日 星期日

打包 Xamarin.Forms 使用的 C# 程式碼片段成為 Visual Studio 2017 的擴充功能

打包 Xamarin.Forms 使用的 C# 程式碼片段成為 Visual Studio 2017 的擴充功能

在過去幾年中,由於從事於 Xamarin.Forms 專案開發與教學的工作,因此,累積了許多開發上使用的程式碼片段,這些程式碼片段大約有27個;而每次進行教學課程的時候,都會要求 Xamarin.Forms 上課學員可以把這些程式碼片段安裝起來,以便可以加快練習專案的開發。然而,幾乎都經常會有許多學員對於使用 Visual Studio 2017 程式碼片段管理員,把這些程式碼片段檔案安裝到 Visual Studio 開發環境上遇到問題,雖然,我都有提供相關作法文件與操作較學影片,不過,還是會有學員設定與使用上發生了問題。
有鑑於此,想說何不自己開發出一個 Visual Studio 擴充功能,如此,可以讓上課學員可以安裝這個擴充功能之後,便可以把這些好用的程式碼開發片段安裝到他們的 Visual Studio 2017 開發環境上;在這裡,我已經做好這個擴充功能,並且上架到 Visual Studio Marketplace 上,有興趣的人可以自行安裝 Xamarin.Forms Snippet for Prism

建立擴充功能專案

那麼,要如何把自己開發的程式碼片段打包成為 Visual Studio 程式碼片段呢?首先,請打開 Visual Studio 2017 ,從功能表中點選 [檔案] > [新增] > [專案],當 [新增專案] 對話窗顯示出來之後,請選擇 [已安裝] > [Visual C#] > [Extensibility] > [VSIX Project] 這個項目,最後,請在對話窗的下方,輸入這個專案的名稱,並且點選 [確定] 按鈕,以便完成建立這個專案。

建立程式碼片段資料夾與設定檔案屬性

請使用滑鼠右擊這個專案,建立底下階層的資料夾 [Snippets] > [CSharp] > [XamarinPrism] ,最後一個資料夾 XamarinPrism 的名稱,您可以依據您的喜好,選擇一個適合的名稱。
此時,您可以把這些程式碼片段,加入倒 [XamarinPrism] 資料夾內,不過,此時,請特別注意要進行底下的設定動作,否則,會有問題產生。
請將這個 Visual Studio 專案內的所有程式碼片段節點全選起來,並且在屬性視窗內,請先選擇這些程式碼片段檔案的 [建置動作] 屬性為 [內容],接著,請設定 [Include in VSIX] 這個屬性為 [True]。

建立與設定機碼內容

請在這個專案內,加入一個 XamarinPrismSnippet.pkgdef 文字檔案,這個檔案的名稱您可以自行設定,並不一定要叫做 XamarinPrismSnippet,接著,請在這個文字檔案內,填入底下內容。
在這裡,我們要設定當這個 Visual Studio 擴充功能在使用者電腦上安裝成功之後,需要在他的電腦上新增底下描述的機碼,在第二行的等號左邊的名稱,將會出現在程式碼片段管理員中的分類名稱,因此,您可以依據您的需要,自行調整與變更成為您需要的名稱。
[$RootKey$\Languages\CodeExpansions\CSharp\Paths]
"XamarinPrism"="$PackageFolder$\Snippets\CSharp\XamarinPrism"

修正 source.extension.vsixmanifest

現在,請在專案中,找到 source.extension.vsixmanifest 節點,使用滑鼠雙擊這個節點,便會看到一個視窗內容,請點選 [Assets] 標籤頁次;接著,請點選右方的 [New] 按鈕。
現在會看到一個 [Add New Asset] 對話窗,請在 [Type] 欄位中,選擇 [Microsoft.VisualStudio.VsPackage],接著在 [Source] 欄位中,選擇 [File on filesystem] 這個選項。
此時,會出現一個新的 [Path] 欄位,我們可以將剛剛建立好的 XamarinPrismSnippet.pkgdef 這個文字檔案名稱,輸入到 [Path] 欄位中 [XamarinPrismSnippet.pkgdef] ,完成後,請點選 [OK] 按鈕。
請在這個視窗的最右上方,看到有兩個欄位,分別是 [Author] 與 [Version] ,請適當修正這兩個欄位值。

進行測試

好的,現在我們可以開始進行這個擴充功能的除錯執行與測試了,現在,請點選工具列上的 Current Instance [Visual Studio Enterprise 2017] 這個項目 (我的電腦上安裝的 Visual Studio 2017 是屬於 Enterprise 版本),現在,將會出現一個獨立環境的 Visual Studio。
請在這個獨立測試環境的 Visual Studio 中,打開程式碼片段管理員對話窗,此時,您應該可以從 CSharp 程式碼片段群組內看到 XamarinPrism 這個選項,那就表示這個擴充功能專案已經正常設計好了。


沒有留言:

張貼留言