Environment.GetCommandLineArgs()[0] zachovává název vyvolání apphost.

Když spustíte aplikaci prostřednictvím apphostu, Environment.GetCommandLineArgs() nyní zachová název volání, včetně relativní cesty nebo názvu symbolického odkazu. Chování pro dotnet <application.dll> je beze změny.

Verze byla představena

.NET 11 Preview 7

Předchozí chování

Dříve, když jste aplikaci spustili prostřednictvím hostitele aplikace, Environment.GetCommandLineArgs()[0] vrátila spravovanou cestu sestavení nebo zjištěnou cestu ke spustitelnému souboru, a ne název vyvolání.

Nové chování

Počínaje rozhraním .NET 11 zachová při spuštění aplikace prostřednictvím hostitele Environment.GetCommandLineArgs()[0] aplikace název spuštění, včetně relativních cest a názvů symlink. Pokud special_myapp je například symlink na myappa spustíte ./special_myapp, hodnota je ./special_myapp.

Při spuštění aplikace se dotnet <application.dll>chování nezmění.

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Aby se .NET sladilo s chováním nativního procesu, modul runtime teď zachovává hodnotu zadanou v argv[0] při spuštění. Toto chování také umožňuje aplikaci rozlišit, který název symlinku ji spustil.

K získání cesty ke spustitelnému souboru použijte Environment.ProcessPath. Pokud chcete získat umístění spravovaného vstupního sestavení, použijte Assembly.GetEntryAssembly()?.Location (viz Assembly.GetEntryAssembly() a Assembly.Location). Umístění je prázdný řetězec pro sbalené sestavení v aplikacích s jedním souborem. Pokud potřebujete název vyvolání, pokračujte v používání Environment.GetCommandLineArgs()[0] .

Ovlivněná rozhraní API