在.NET核心控制台应用中,我想获取正在运行的进程名称,我使用ProcessName
作为文档说,但它始终返回dotnet
作为进程名称,不是正在运行的实际下划线dll。虽然它是一个DLL,但这是一个控制台应用程序,而不是库。
Console.WriteLine(Process.GetCurrentProcess().ProcessName);
输出
dotnet
答案 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的项目'这是我的名字'
System.Reflection.Assembly.GetEntryAssembly().GetName().Name
打印Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().ProcessName);
,如下所示。
任务管理器显示
This is my name