Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po uruchomieniu aplikacji za pośrednictwem hosta apphost Environment.GetCommandLineArgs() zachowuje teraz nazwę wywołania, w tym ścieżkę względną lub nazwę dowiązania symbolicznego. Zachowanie dla dotnet <application.dll> pozostaje bez zmian.
Wersja wprowadzona
.NET 11 (wersja zapoznawcza 7)
Poprzednie zachowanie
Wcześniej po uruchomieniu aplikacji za pośrednictwem hosta apphost Environment.GetCommandLineArgs()[0] zwracana była ścieżka zarządzanego zestawu lub rozpoznana ścieżka pliku wykonywalnego, a nie nazwa wywołania.
Nowe zachowanie
Począwszy od .NET 11, gdy uruchamiasz aplikację za pośrednictwem jej hosta apphost, Environment.GetCommandLineArgs()[0] zachowuje nazwę wywołania, w tym ścieżki względne i nazwy sylinków. Jeśli na przykład special_myapp jest dowiązaniem symbolicznym do myapp, i uruchomisz ./special_myapp, wartość to ./special_myapp.
Po uruchomieniu aplikacji za pomocą dotnet <application.dll> zachowanie nie zmienia się.
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Aby dopasować .NET do natywnego zachowania procesu, środowisko uruchomieniowe zachowuje teraz wartość argv[0] podaną podczas uruchamiania. To zachowanie pozwala również aplikacji odróżnić, która nazwa dowiązania symbolicznego została użyta do jej uruchomienia.
Zalecana akcja
Aby uzyskać ścieżkę do pliku wykonywalnego, użyj polecenia Environment.ProcessPath. Aby uzyskać lokalizację zarządzanego zestawu wejściowego, użyj polecenia Assembly.GetEntryAssembly()?.Location (zobacz Assembly.GetEntryAssembly() i Assembly.Location). Lokalizacja jest pustym ciągiem dla dołączonych zestawów w aplikacjach jednoplikowych. Nadal używaj Environment.GetCommandLineArgs()[0], gdy potrzebujesz nazwy wywołania.