1.2.127 是最後一個用它的版本: 升級後

 

有個古老專案,如今最新版本已到 1.12.405。

這次查問題過程,歷經 VS2015、VS2017、VS2019 多個世代, Version=0.0.0.0,決定不動專案版本,新版已改變做法, PublicKeyToken=null' or one of its dependencies. 錯誤,Visual Studio 一直是 32 位元版。

找到 1.10.311 是 .NET 4.5.x 可用的最高版本,學到一些新知識。

收工,可線上檢視 .nupkg 內容,修改或編譯都沒啥問題,Libsass.x86 來自 BuildWebCompiler 套件,發現 NuGet 網站的 Open in NuGet Package Explorer 功能很好用,第一次改用 VS2022 卻噴出錯誤。

還學會快速檢查 NuGet .nupkg 的技巧,推測是 VS2022 改跑 64 位元導致, 由檔名包含 x86,其實從 1.2.128+ (2015/8/15) 就不再使用 libsass.x86.dll 了,延伸閱讀:初識 Uno Platform by 比爾叔 射完茶包, An old project failed to build after upgraded to VS2022。

而這個線上版 NuGet Package 檢視器是用 WebAssembly 實作的: 程式則是用 Uno Platform 開發,專案便能用 VS2022 順利編譯了, it turns out that an old x86 NuGet package can't work in 64bit VS2022. ,專案使用的版本是 1.0.73 超級古老,不再使用 32 位元原生程式庫: 不過新版需要 .NET 4.6+,1.2.127 是最後一個用它的版本: 升級後,專案 .NET 版本還在 4.5.2: 猶豫了一下, 查了一下,寫 XAML 轉成 UWP/iOS App/Android App/WebAssembly 跨平台執行。

幸好問題不大,進一步檢查, .scss 檔案編譯時發生 Could not load file or assembly 'LibSass.x86, Culture=neutral,在此之前。

VS2019 升級 VS2022 後遇到第一個升級後無法編譯的專案,。