最近在幫一個舊案擴充新功能時遇到一個蠻討厭的問題
TypeScript complier 時因為版本關係找不到對應的 UsingTask..
發生的原因目前推測是
Microsoft.TypeScript.MSBuild
也為 1.8於是在 build 專案時就會炸如下圖所示的問題
Microsoft.TypeScript.MSBuild
由於目前公司制定專案架構的關係
擴充功能不會放在 Web 專案中,而是另開一個類別庫做開發
但預設 TypeScript 只會編譯設定為啟示專案底下的 .ts
這時我們可以透過 Microsoft.TypeScript.MSBuild
套件來協助
它會在方案建置時重新編譯 .ts,也會在清除方案時將編譯出來的 .js, .map 刪除
經過多方測試,目前最快的解決方法為
透過上述三步驟就可以讓錯誤暫時不出現
但問題是每次要建置時都必須重複上述三個步驟,有點不方便
目前看起來是專案設定的 TypeScript 版本與當前開發環境不同
所以我們就有兩種解決方向
我後來是採取將專案設定弄得跟開發環境一致就解決
首先要先查看當前安裝的 TypeScript 版本
開啟
Developer Command Prompt
輸入tsc -v
將專案的 Microsoft.TypeScript.MSBuild
套件升級至對應的版本即可
在開發時遇到這種專案設定與開發環境設定不同造成的錯誤頗麻煩
同事建議未來如果能利用 docker 來確保開發環境一致或許是個不錯的選擇