Pure 遷移指南
第 1 版(Pure)與第 2 版(Pure 2)
Pure 2 打破了向後相容性。你可能需要執行以下操作:
- 獨立指令碼應顯式新增
using static System.Console; - 匯入 DLL 時,Pure 不再自動匯入
Main類,因此你需要手動匯入所需內容。例如using static <MyLibrary>.Main;
Pure 2 與 Pure(1)不向後相容,不過 Pure(1)很可能在一定程度上與 Pure 2 向前相容。
.Net 7 升級到 .Net 8
總體而言,此次升級在 API 或 Pure 語言核心結構行為方面不會帶來破壞性變更。(唯一已知的變更是 Notebook 的可執行檔案路徑)
以下列出了我們從 .Net 7 遷移到 .Net 8 所採取的步驟,可作為未來升級的參考:
- 將原始碼中所有提到 .Net 7 的地方替換為 .Net 8,並修正相關注釋/程式碼;搜尋:
.net 7和net7 - 將所有
.csproj的目標改為 net 8 - 確保所有專案的包引用都相應升級,尤其是與程式碼編譯服務相關的部分;可以全域搜尋
7.0來找出這些位置;更新與Microsoft.CodeAnalysis.CSharp相關的模組依賴 - 執行所有可用的單元測試
- 如果
dotnetCLI 參數語法有任何變化,更新PublishAll.ps1指令碼 - 遞增並更新 CoreVersion 變數及相應的更新日誌字串。
- 測試並確保
Import仍然有效(在TryDownloadNugetPackage中實現),並以 .Net 8 為目標 - 刪除 Publish 和 .vs 資料夾中的所有內容並全新構建;刪除
AppData\Local\Temp\Pure\NugetDownloads - 按照 https://learn.microsoft.com/en-us/aspnet/core/migration/70-80 進行核對,檢視是否有其他步驟
- 好在我們沒有使用 Blazor、ASP.Net Core 或任何其他大型框架,否則遷移會很麻煩——今後我們也應繼續避免使用
- 核心庫:確保 ODBC 和 Razor 正常工作
- 更新組織頁面,說明我們使用的是 .Net 8 而不是 .Net 7
我們可以確定以下元件是對 .Net 版本敏感的“脆弱”元件:
- Core 模組對 Roslyn 編譯服務的依賴
- Razor 模組對 RazorEngine.NetCore 的依賴
Import巨集的行為- 任何 Windows 專用模組(例如繪圖)
使用者升級指南
- 根據使用者指令碼中引用的 NuGet 包是否與 .Net 8 不相容,決定是否需要升級
- 執行 .Net 8 執行時以及 ASP.Net Core 託管捆綁包:(Windows)ASP.Net Core Hosting Bundle、.Net 8 Runtime、.Net Desktop Runtime
- 安裝最新的 Pure 發行版
- 確保使用者指令碼所依賴的
PATH中的所有模組都已更新並針對 .Net 8 構建 - (此步驟必不可少)刪除
AppData\Local\Temp\Pure\NugetDownloads資料夾中的內容,以便全新開始 - 破壞性變更:如果使用了
Notebook,它的路徑已經移動,因此可能需要修改 Windows 快捷方式的目標路徑,或將新的可執行檔案路徑更新到環境變數PATH中——它現在位於<Pure Distribution Folder>\Windows\Notebook.exe