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

6
在一个.NET Core控制台应用程序中,我想获取正在运行的进程名称,我使用了文档中所说的ProcessName,但它总是返回dotnet作为进程名称,而不是实际运行的下划线dll。尽管它是一个dll,但这是一个控制台应用程序,而不是一个库。
Console.WriteLine(Process.GetCurrentProcess().ProcessName);

输出

dotnet

1
System.AppDomain.CurrentDomain.FriendlyName 返回什么?它来自于这里 - Keyur PATEL
这正是我想要的名称,因此它保存在AppDomain而不是Process中,谢谢! - fluter
1个回答

8

编辑:

针对.NET Core,您可以使用以下内容:

 System.Reflection.Assembly.GetEntryAssembly().FullName

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

针对 .NET

针对名称为“这是我的名字”的项目

enter image description here

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

输出结果如下,打印出This is my name

enter image description here

任务管理器显示:

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

enter image description here


5
问题在于.NET Core中,所有应用程序都是通过dotnet cli启动的,这与.NET Framework不同,后者每个应用程序都有自己的exe文件。 - fluter
我添加了关于AssemblyTitle的信息。 - tymtam
System.Reflection.Assembly.GetEntryAssembly().GetName().Name 对你有用吗? - tymtam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接