単一ファイル発行形式のアセンブリ関連 API 動作の変更

アセンブリのファイルの場所に関連する複数の API は、単一ファイルの公開形式で呼び出されたときに動作が変更されます。

変更内容

.NET 5 以降のバージョンの単一ファイル公開では、バンドルされたアセンブリは、ディスクに展開されるのではなく、メモリから読み込まれます。 単一ファイルで公開されたアプリの場合、これは、特定の場所関連の API が .NET 5 以降で以前のバージョンの .NET とは異なる値を返すことを意味します。 変更点は次のとおりです。

API 以前のバージョン .NET 5 以降
Assembly.Location 展開された DLL ファイル パスを返します バンドルされたアセンブリに対して空の文字列を返します
Assembly.CodeBase 展開された DLL ファイル パスを返します バンドルされたアセンブリの例外をスローします
Assembly.GetFile(String) バンドルされたアセンブリの null を返します バンドルされたアセンブリの例外をスローします
Environment.GetCommandLineArgs()[0] 値はエントリ ポイント DLL の名前です 値はホストの実行可能ファイルの名前です
AppContext.BaseDirectory 値は一時的な展開ディレクトリです 値は、ホストの実行可能ファイルの格納ディレクトリです。

導入されたバージョン

5.0

1 つのファイルとして公開する場合は、アセンブリのファイルの場所に依存しないようにします。

影響を受ける API