繁體中文
English 简体中文 繁體中文
Methodox 首頁

Pure 遷移指南

第 1 版(Pure)與第 2 版(Pure 2)

Pure 2 打破了向後相容性。你可能需要執行以下操作:

  1. 獨立指令碼應顯式新增 using static System.Console;
  2. 匯入 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 相關的模組依賴
  • 執行所有可用的單元測試
  • 如果 dotnet CLI 參數語法有任何變化,更新 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

參考資料