发布日期:2018-03-26
如何使用C#在控制台应用程序中找到应用程序的路径?+ 查看更多
如何使用C#在控制台应用程序中找到应用程序的路径?
+ 查看更多
发布日期:2018-03-07 14:03
分类:C#
浏览次数:124
在Windows窗体中,我可以使用Application.StartupPath查找当前路径,但这在控制台应用程序中似乎不可用。
回答
如果你想要的是目录用System.Reflection.Assembly.GetExecutingAssembly().Location 与System.IO.Path.GetDirectoryName相结合
System.Reflection.Assembly.GetExecutingAssembly(),位置返回执行程序集当前所在的位置,当不执行程序集时,它可能是也可能不是程序集所在的位置。在影子复制组件的情况下,您将在临时目录中获取路径。 System.Reflection.Assembly.GetExecutingAssembly().CodeBase将返回程序集的“永久”路径。
另请注意,在 bitbonk observes时,GetExecutingAssembly返回包含当前正在执行的代码的程序集,这可能不一定是控制台.exe程序集。它可能是由控制台组件从完全不同的位置加载的组件。对于入口程序集,您需要GetEntryAssembly:
获取默认应用程序域中的进程可执行文件。在其他应用程序域中,这是由AppDomain.ExecuteAssembly执行的第一个可执行文件。 bitbonk还注意到,当程序集在GAC中时,CodeBase可能未设置,因此也应考虑AppDomain.CurrentDomain.BaseDirectory。