2020年6月17日 星期三

[研究] Visual Studio 2019 NuGet 元件升級經驗筆記

[研究] Visual Studio 2019 NuGet 元件升級經驗筆記

2020-06-17

********************************************************************************

注意,先備份。

最好一次升級一個元件,注意它相依升級了那些。
尤其大版本號碼變更的,例如 1.x.x 升級 2.x.x 或 8.x.x 升級 9.x.x 這類的。
次版號變更升級,有問題機率低。
次次版號變更升級,有問題機率更低。
免得後面要降版本時,因為相依,可能很難降。

每升級一個元件,編譯 (重建方案) 看看能否成功,免得一口氣升級一堆,編譯失敗時不知哪個有問題。

升級可能美工畫面排版亂掉、編譯失敗,或其他問題。

********************************************************************************

AutoMapper 從 8.0.0 升級 9.0.0,編譯會出錯

嚴重性 程式碼 說明 專案 檔案 隱藏項目狀態
錯誤 CS0117 'Mapper' 未包含 'Initialize' 的定義 PMSWeb D:\WebApplication1\WebApplication1\App_Start\AutoMapperConfig.cs 14 作用中

改升級為 8.1.1,編譯正常;等未來更新的 9.x.x 再試試看。

********************************************************************************

bootstrap 從 3.4.1 升級 4.x,編譯成功,但 deploy 後,執行看到畫面排版大亂,
只能升級到 3.x 最新版,不可升級 4.x 版,目前最新仍 3.4.1。

********************************************************************************

AspNet.ScriptManager.bootstrap 3.3.7 => 4.x 需要 bootstrap 4.x,所以也不要升級

********************************************************************************

EntityFramework 6.2.0 => 6.4.x,不要升級

嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤  無法解析相依性。'EntityFramework 6.4.0' 與 'EntityFramework.zh-Hant 6.2.0 條件約束: EntityFramework (= 6.2.0)' 不相容。   

因為 EntityFramework 已經出到 6.4.0,但是 EntityFramework.zh-Hant 只出到 6.2.0。

要升級 EntityFramework,請先確定 EntityFramework.zh-Hant 有相同版本的。

如果一定要安裝 EntityFramework 6.4.0,可以把 EntityFramework.zh-Hant 6.2.0 移除掉 (如果還有安裝其他語系套件可能也要移除),就不會有條件約束的問題。
( 但需要確定不需要語系套件,某些訊息不知是否會從繁體中文變成英文版 )

********************************************************************************

Microsoft.Net.Compilers 升級問題

嚴重性 程式碼 說明 專案 檔案 行 隱藏項目狀態
錯誤  Microsoft.Net.Compilers is only supported on MSBuild v16.3 and above WebApplication1 D:\WebApplication1\WebApplication1\packages\Microsoft.Net.Compilers.3.4.0\build\Microsoft.Net.Compilers.props 14

Visual Studio 已經是 Visual Studio 2019 v16.4.1

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64
執行 msbuild.exe
確認 MSBuild.exe 已經是 16.4.0 版

解決:
把 Microsoft.Net.Compilers.3.4.0 降回 Microsoft.Net.Compilers.3.3.1 版就可以解決。

********************************************************************************

jQuery 3.4.1 => 3.5.1 升級,登入後,選單的縮合功能消失,故不能升級。
搜尋 "3.4.1",發現方案中某些地方使用了 online 版本的 jQuery 3.4.1,也安裝了 NuGet 版本 jQuery ,把 online 版的版號全換成 3.5.1 後,正常了。

********************************************************************************

(完)

沒有留言:

張貼留言