【问题标题】:How to get real running process name?如何获得真正的运行进程名称?
【发布时间】:2017-12-26 22:02:39
【问题描述】:

在 .NET 核心控制台应用程序中,我想获取正在运行的进程名称,我使用了文档中所说的 ProcessName,但它总是返回 dotnet 作为进程名称,而不是实际的下划线 dll在跑。虽然是dll,但这是控制台应用,不是库。

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

输出

dotnet

【问题讨论】:

  • System.AppDomain.CurrentDomain.FriendlyName 返回什么?它是from here
  • 这是我想要的正确名称,所以这是保留在 AppDomain 而不是进程中,谢谢!

标签: c# process .net-core .net-standard


【解决方案1】:

编辑:

对于 .net 核心,您可以使用:

 System.Reflection.Assembly.GetEntryAssembly().FullName

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

对于 .NET

对于一个带有 Assmebly Name 'This is my name' 的项目

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

如下图所示打印This is my name

任务管理器显示

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

【讨论】:

  • 问题出在.NET Core,所有应用都是由dotnet cli启动的,不像.NET Framework,每个应用都在自己的exe中。
  • 我添加了关于 AssemblyTitle 的信息
  • System.Reflection.Assembly.GetEntryAssembly().GetName().Name 适合你吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
相关资源
最近更新 更多