共用方式為


Unix 檔案路徑中的反斜線對應

反斜線 (\) 字元在 Unix 上的目錄和檔案名中有效。 從 .NET 8 開始,原生 CoreCLR 執行階段不會再將 \ 字元轉換成 Unix 上的目錄分隔符號 - 正斜線 (/)。 這項變更可讓 .NET 應用程式位於名稱包含反斜線字元的路徑上。 也允許原生執行階段、dotnet 主機和 ilasmildasm 工具存取包含反斜線字元的路徑上檔案。

先前的行為

原生 CoreCLR 執行階段會自動將檔案路徑中的反斜線 (\) 字元轉換為 Unix 上的正斜線 (/)。

新的行為

原生 CoreCLR 執行階段不會轉換 Unix 上的任何檔案路徑字元。

導入的版本

.NET 8 Preview 1

中斷性變更的類型

此變更為行為變更

變更原因

如果沒有這項變更,位於包含反斜線字元目錄中的 .NET 應用程式將無法啟動。

  • 在應用程式中使用 Path.DirectorySeparatorChar 做為目錄分隔符號,而不是將其硬式編碼為 \/
  • 在傳遞至 dotnet 主機、裝載 API 和 ilasmildasm 工具的檔案路徑中,使用 / 做為 Unix 上的目錄分隔符號。
  • 在各種 DOTNET_xxx 環境變數的檔案路徑中,使用 / 做為 Unix 上的目錄分隔符號。

受影響的 API