我想要获得当前运行程序的名称,即程序的可执行名称。在C/ c++中,你从args[0]中得到它。


当前回答

超级简单,在这里:

Environment.CurrentDirectory + "\\" + Process.GetCurrentProcess().ProcessName

其他回答

System.Diagnostics.Process.GetCurrentProcess()获取当前正在运行的进程。您可以使用ProcessName属性来确定名称。下面是一个示例控制台应用程序。

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Process.GetCurrentProcess().ProcessName);
        Console.ReadLine();
    }
}
System.AppDomain.CurrentDomain.FriendlyName

在。net Core(或Mono)上,当定义进程的二进制文件是Mono或。net Core (dotnet)的运行时二进制文件,而不是您感兴趣的实际应用程序时,大多数答案都不适用。在这种情况下,使用这个:

var myName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location);

这是你想要的吗?

Assembly.GetExecutingAssembly ().Location

如果您需要程序名称来设置防火墙规则,请使用:

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

这将确保在VisualStudio中调试和在windows中直接运行应用程序时名称是正确的。