單一檔案發佈格式的組件相關 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

以單一檔案的形式發佈時,請避免相依於組件的檔案位置。

受影響的 API