C# Project Template 發生的異常狀況

前言

有在看小編部落格的朋友應該都知道,我有許多關於 Project Templates 相關的教學、投影片、分享部落格文章等,本次小編進行另一個客戶的的 C# Project Templates 專案時,卻發生一個詭異問題。

就是如上這個錯誤訊息,每當建立安裝好的這個新的 C# Project Template 時,專案建立過程中就會出現這個錯誤,這….. 是什麼詭異訊息?我從來就沒遇過啊?從以前建置 Visual Studio 2015 的 Project Templates 就從沒遇過這種情形,為一的差別只是目前使用的是 Visual Studio 2017,難道我踩到了 Visual Studio 2017 Extensibility SDK 的坑?  喔~ 不會吧,馬上搜尋一下 Google ,結果是,從沒有人遇過跟我相同的問題,一度還認為是專案目錄名稱太長,也許 VSIX 執行環境命令列長度限制,於是將整個專案複製到 D:\ 磁碟機下面還是一樣的狀況。

就在案情陷入膠著時,於是我將編譯完成的 VSIX 安裝檔直接解壓,查看其內容時有了驚人的發現… 這麼發現倒不是 Visual Studio Extensibility SDK 2017 有什麼 Bug,而是我發現了我驚人的失誤…. 什麼失誤呢?@@ 答案是,字打錯,什麼字打錯呢?看看下面的圖就知道了……

在 C# Project Templates 裡,編輯 ProjectTemplate.csproj 檔案時,不管是需要編譯、不需要編譯的檔案均放置在 <ItemGroup> 節點下面,只是,在習慣上,我們會將不需要編譯的 Content 內容 (也就是<None>的項目),放在另外的 <ItemGroup> 下,只是代表包含檔案的 Include 我不小心敲成了 Incluse 以至於引發這個作業失敗的錯誤訊息。

 

結語

這次問題的起因在於,我們若是編輯 .csproj 或是 .vstemplate 等原本由工具產生的檔案,對於 Visual Studio 而言,因為 Visual Studio 工具自行在 Maintain ,Visual Studio 工具不會料想到有人會去修改、甚至改錯了 Visual Studio 工具不認得的關鍵字,以至於 Visual Studio 工具吐回來的訊息不是那麼容易理解,因為這一類的錯誤並不像是在編輯 C# 時,有良好的 C# 編輯器支援,可以在設計時期,為我們找出拼字上的錯誤,所以開發人員在開發撰寫 VS Plug-In、Project Templates 時,更需要注意打錯字的問題,因為 Visual Studio 可能也不會料想到 Include 的關鍵字居然會有錯,開發人員如果到最後才發現是這個愚蠢的問題就太冤枉了。

留言

這個網誌中的熱門文章

什麼是 gRPC ?

什麼是 gRPC(二)- 來撰寫第一個 Hello World 吧!

常見的程式碼壞味道(Code Smell or Bad Smell)