如何获取真实运行的进程名称?

flu*_*ter 6 c# process .net-core .net-standard

在 .NET Core 控制台应用程序中,我想获取正在运行的进程名称,我ProcessName按照文档所述使用,但它始终dotnet作为进程名称返回,而不是正在运行的实际下划线 dll。虽然它是一个 dll,但这是一个控制台应用程序,而不是一个库。

Console.WriteLine(Process.GetCurrentProcess().ProcessName);
Run Code Online (Sandbox Code Playgroud)

输出

dotnet
Run Code Online (Sandbox Code Playgroud)

tym*_*tam 8

编辑:

对于.net core,你可以使用:

 System.Reflection.Assembly.GetEntryAssembly().FullName
Run Code Online (Sandbox Code Playgroud)

或者

 System.Reflection.Assembly.GetEntryAssembly().GetName().Name
Run Code Online (Sandbox Code Playgroud)

对于.NET

对于装配名称为“这是我的名字”的项目

在此输入图像描述

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

打印This is my name如下图所示。

在此输入图像描述

任务管理器显示

 [assembly: AssemblyTitle("This is my name Title")]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 问题出在 .NET Core 中,所有应用程序都是由 dotnet cli 启动的,这与 .NET Framework 中的每个应用程序都在自己的 exe 中不同。 (5认同)