如何获得真正的运行进程名称?

时间:2017-07-21 01:47:41

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

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

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

输出

dotnet

1 个答案:

答案 0 :(得分:1)

编辑:

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

    ClientCredential clientCred = new ClientCredential(clientId, appKey);
    var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;
    string userName = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn) != null ? ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn).Value : ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email).Value;
    string userAccessToken = bootstrapContext.Token;
    UserAssertion userAssertion = new UserAssertion(bootstrapContext.Token, "urn:ietf:params:oauth:grant-type:jwt-bearer", userName);

    string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
    string userId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
    AuthenticationContext authContext = new AuthenticationContext(authority, new DbTokenCache(userId));

 System.Reflection.Assembly.GetEntryAssembly().FullName

对于.NET

对于具有Assmebly Name的项目'这是我的名字'

enter image description here

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

打印Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().ProcessName);,如下所示。

enter image description here

任务管理器显示

This is my name

enter image description here