gpt4 book ai didi

c# - 从程序集与进程获取当前可执行文件的名称?

转载 作者:行者123 更新时间:2023-11-30 13:23:51 25 4
gpt4 key购买 nike

这是对 this answer 的跟进(和它的评论)。从程序集和进程获取可执行文件名有什么区别?

System.Reflection.Assembly.GetCallingAssembly.GetEntryAssembly().CodeBase 

对比

Process.GetCurrentProcess().ProcessName

我假设这些将一直相同?不?有优点和缺点吗?

最佳答案

它们不一定相同。将这两个程序编译为同一目录中的控制台应用程序:

// In Test.cs, compile to Test.exe
using System;
using System.Reflection;

public static class Program
{
static void Main(string[] args)
{
AppDomain.CreateDomain("NewDomain").ExecuteAssembly("Test2.exe");
}
}

// In Test2.cs, compile to Test2.exe
using System;
using System.Diagnostics;
using System.Reflection;

class Test2
{
static void Main()
{
Console.WriteLine("Process: {0}",
Process.GetCurrentProcess().ProcessName);
Console.WriteLine("Entry assembly: {0}",
Assembly.GetEntryAssembly().CodeBase);
}
}

输出:

Process: Test
Entry assembly: file:///c:/Users/Jon/Test/Test2.EXE

关于c# - 从程序集与进程获取当前可执行文件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8406711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com