C# 获取程序集可执行目录

C# 获取程序集可执行目录,c#,.net-assembly,executable,C#,.net Assembly,Executable,我有两个应用程序,例如App1和App2。 正常运行时,App1将显示其程序集可执行文件位置。 但当我从App2调用App1时,它返回App2的启动位置 那么,当我从App2调用App1时,如何获取App1的启动路径?您可以使用以下命令获取当前正在执行的程序集的目录: string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 返回当前正在执行的程序集,位置是该程序集的完整路径或U

我有两个应用程序,例如App1和App2。 正常运行时,App1将显示其程序集可执行文件位置。 但当我从App2调用App1时,它返回App2的启动位置


那么,当我从App2调用App1时,如何获取App1的启动路径?

您可以使用以下命令获取当前正在执行的程序集的目录:

string assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
返回当前正在执行的程序集,
位置
是该程序集的完整路径或UNC路径

Path.GetDirectoryName()
返回完整路径的目录



请注意,程序集的路径与启动路径不同。启动路径是从中启动应用程序的工作目录。如果您的应用程序未更改其工作目录,则由第一个应用程序启动的所有应用程序将具有相同的启动路径。

欢迎使用StackOverflow!请展示您尝试过的内容,并明确您想要的内容:“启动路径”或“程序集位置”?我得到启动路径=Application.StartupPath。当我运行App1时,nomal up path返回真实位置。但当我从App2调用App1时,它返回App2位置。那么,当我从App2调用App1时,如何获取App1的启动路径呢?当然是一样的。StartupPath不是程序集的路径,而是启动应用程序的工作目录。因此,如果您的App2不更改其工作目录,则App1具有相同的startuppath。无法通过字符串assemblyPath=Path.GetDirectoryName(Assembly.GetExecutionGassembly().Location)获取;它返回App2 startup path。修复了今天的一个错误,
应用程序。startup
导航到Internet Explorer目录,当然我们无法在那里写入文件,这修复了它在程序集目录中写入的问题,谢谢!