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
Zalecana akcja
Unikaj zależności od lokalizacji plików zestawów podczas publikowania jako pojedynczego pliku.