Zmiany zachowania interfejsu API związane z zestawem dla formatu publikowania w jednym pliku

Wiele interfejsów API związanych z lokalizacją pliku zestawu ma zmiany zachowania po wywołaniu ich w formacie publikowania pojedynczego pliku.

Opis zmiany

W przypadku publikowania w jednym pliku dla platformy .NET 5 i nowszych wersji zestawy połączone są ładowane z pamięci zamiast wyodrębniać na dysk. W przypadku aplikacji opublikowanych w jednym pliku oznacza to, że niektóre interfejsy API związane z lokalizacją zwracają różne wartości na platformie .NET 5 lub nowszym niż w poprzednich wersjach platformy .NET. Zmiany są następujące:

interfejs API Poprzednie wersje .NET 5 lub nowszy
Assembly.Location Zwraca ścieżkę wyodrębnionego pliku DLL Zwraca pusty ciąg dla zestawów w pakiecie
Assembly.CodeBase Zwraca ścieżkę wyodrębnionego pliku DLL Zgłasza wyjątek dla zestawów dołączonych
Assembly.GetFile(String) Zwracany null dla zestawów w pakiecie Zgłasza wyjątek dla zestawów dołączonych
Environment.GetCommandLineArgs()[0] Wartość to nazwa biblioteki DLL punktu wejścia Wartość to nazwa pliku wykonywalnego hosta
AppContext.BaseDirectory Wartość to katalog wyodrębniania tymczasowego Wartość to katalog zawierający plik wykonywalny hosta

Wprowadzona wersja

5,0

Unikaj zależności od lokalizacji plików zestawów podczas publikowania jako pojedynczego pliku.

Dotyczy interfejsów API