Unix のファイル パスでの円記号のマッピング

Unix のディレクトリ名とファイル名で、円記号 (\) 文字は有効です。 .NET 8 以降、ネイティブ CoreCLR ランタイムは Unix で \ 文字をディレクトリ区切り記号のスラッシュ (/) に変換しなくなりました。 この変更により、円記号文字を含む名前を持つパスに .NET アプリケーションを配置できます。 また、ネイティブ ランタイム、dotnet ホスト、および ilasmildasm ツールが円記号文字を含むパス上のファイルにアクセスできるようになります。

以前の動作

Unix でネイティブ CoreCLR ランタイムは、ファイル パス内の円記号 (\) 文字をスラッシュ (/) に自動的に変換していました。

新しい動作

Unix でネイティブ CoreCLR ランタイムは、ファイル パス文字は変換しません。

導入されたバージョン

.NET 8 Preview 1

破壊的変更の種類

この変更は、動作変更です。

変更理由

この変更がなければ、円記号文字を含むディレクトリにある .NET アプリは起動に失敗します。

  • アプリでは、\/ にハードコーディングせずに、Path.DirectorySeparatorChar をディレクトリの区切り記号として使用してください。
  • Unix で dotnet ホスト、ホスティング API、および ilasmildasm のツールに渡すファイル パスのディレクトリ区切り文字には、/ を使用してください。
  • Unix のさまざまな DOTNET_xxx 環境変数では、/ をファイル パスのディレクトリ区切り記号として使用してください。

影響を受ける API