VS2019 升級 VS2022 後遇到第一個升級後無法編譯的專案,幸好問題不大,還學會快速檢查 NuGet .nupkg 的技巧。
有個古老專案,歷經 VS2015、VS2017、VS2019 多個世代,修改或編譯都沒啥問題,第一次改用 VS2022 卻噴出錯誤。
.scss 檔案編譯時發生 Could not load file or assembly 'LibSass.x86, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 錯誤。
由檔名包含 x86,推測是 VS2022 改跑 64 位元導致,在此之前,Visual Studio 一直是 32 位元版。
查了一下,Libsass.x86 來自 BuildWebCompiler 套件,專案使用的版本是 1.0.73 超級古老,如今最新版本已到 1.12.405,新版已改變做法,不再使用 32 位元原生程式庫:
不過新版需要 .NET 4.6+,專案 .NET 版本還在 4.5.2:
猶豫了一下,決定不動專案版本,找到 1.10.311 是 .NET 4.5.x 可用的最高版本。進一步檢查,其實從 1.2.128+ (2015/8/15) 就不再使用 libsass.x86.dll 了,1.2.127 是最後一個用它的版本:
升級後,專案便能用 VS2022 順利編譯了。
這次查問題過程,發現 NuGet 網站的 Open in NuGet Package Explorer 功能很好用,可線上檢視 .nupkg 內容。
而這個線上版 NuGet Package 檢視器是用 WebAssembly 實作的:
程式則是用 Uno Platform 開發,寫 XAML 轉成 UWP/iOS App/Android App/WebAssembly 跨平台執行。延伸閱讀:初識 Uno Platform by 比爾叔
射完茶包,學到一些新知識,收工。
本文分享自 黑暗執行緒