2017-07-21 4 views
0

In einer .NET-Core-Konsole-App möchte ich den Namen des laufenden Prozesses abrufen, ich habe ProcessName wie die Dokumentation sagen, aber es gibt immer dotnet als Prozessname, nicht die eigentliche Unterstreichungsdll, die ausgeführt wird. Obwohl es eine DLL ist, ist dies eine Konsolenanwendung, keine Bibliothek.Wie bekommt man den Namen des laufenden Prozesses?

Console.WriteLine(Process.GetCurrentProcess().ProcessName); 

Ausgang

dotnet 
+1

Was bedeutet 'System.AppDomain.CurrentDomain.FriendlyName' zurückkehren? Es ist [von hier] (https://stackoverflow.com/a/616715/6741868). –

+0

Es ist der richtige Name, den ich wollte, so dass dies in AppDomain nicht verarbeitet wird, danke! – fluter

Antwort

1

EDIT:

für .net Kern könnten Sie verwenden:

System.Reflection.Assembly.GetEntryAssembly().FullName 

oder

System.Reflection.Assembly.GetEntryAssembly().GetName().Name 

Für .NET

Für ein Projekt mit Assmebly Namen 'Dies ist mein Name'

enter image description here

Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().ProcessName);

druckt This is my name wie unten dargestellt.

enter image description here

Task-Manager zeigt

[assembly: AssemblyTitle("This is my name Title")] 

enter image description here

+2

Das Problem ist in .NET Core, alle Anwendungen werden von der dotnet CLI gestartet, es ist nicht das gleiche wie in .NET Framework, wo jede App in einer eigenen EXE ist. – fluter

+0

Ich habe Info über AssemblyTitle hinzugefügt – mayu

+0

Würde 'System.Reflection.Assembly.GetEntryAssembly(). GetName(). Name' Arbeit für Sie? – mayu

Verwandte Themen