Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Wanneer u een app start via de apphost, blijft met Environment.GetCommandLineArgs() de aanroepnaam nu behouden, inclusief een relatief pad of symlinknaam. Het gedrag voor dotnet <application.dll> is ongewijzigd.
Geïntroduceerde versie
.NET 11 preview 7
Vorig gedrag
Eerder, toen u een app via de apphost startte, retourneerde Environment.GetCommandLineArgs()[0] het beheerde assemblypad of het opgeloste uitvoerbare pad, in plaats van de naam van de aanroep.
Nieuw gedrag
Wanneer u vanaf .NET 11 een app start via de apphost, behoudt Environment.GetCommandLineArgs()[0] de aanroepnaam, inclusief relatieve paden en symlinknamen. Als special_myapp bijvoorbeeld een symlink naar myapp is en u ./special_myapp uitvoert, is ./special_myapp de waarde.
Wanneer u een app met dotnet <application.dll> start, blijft het gedrag ongewijzigd.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Om .NET af te stemmen op systeemeigen procesgedrag, behoudt de runtime nu de waarde van argv[0] die bij het starten is opgegeven. Met dit gedrag kan een app ook onderscheiden met welke symlinknaam deze is gestart.
Aanbevolen actie
Als u het uitvoerbare pad wilt ophalen, gebruikt u Environment.ProcessPath. Als u de locatie van de beheerde invoerassembly wilt ophalen, gebruikt u Assembly.GetEntryAssembly()?.Location (zie Assembly.GetEntryAssembly() en Assembly.Location). De locatie is een lege tekenreeks voor gebundelde assembly's in apps met één bestand. Blijf Environment.GetCommandLineArgs()[0] gebruiken wanneer u de aanroepnaam nodig hebt.