我试图获取我的应用程序正在执行的Debug文件夹的目录路径,或者我应该说我正在运行的EXE程序运行的目录路径。
现在,你们许多人可能会说要做这样的事情
System.Reflection.Assembly.GetExecutingAssembly().Location
我无法做到这一点。我需要从替代装配中获得。我不知道这将是什么装配,所以我想它必须全局工作而不改变它,这取决于它目前所在的装配。
我正在寻找最佳方式(考虑速度和性能)。
答案 0 :(得分:0)
这是.net核心中AppDomain.CurrentDomain.BaseDirectory
的首选替代品(至少在AppDomain出现API之前,如果有的话)。
这是全面的最佳选择。它将为您提供类库的基本目录,包括ASP.NET应用程序中的库。
这是使用kernel32.dll中的winapi GetCurrentDirectory调用进行互操作调用,这意味着通常会返回启动过程'文件夹。同样如MSDN文档所述,它不能保证在移动设备上运行。
这只是调用Directory.GetCurrentDirectory()
这将使用
调用this.GetType().Assembly.Location
这将返回调用程序集的完整路径,包括程序集名称本身。如果要调用单独的类库,则会返回其基本目录,例如“C:\ myassembly.dll” - 显然取决于正在使用的Assembly实例。
这是在System.Windows.Forms命名空间内,因此通常仅在窗体窗体应用程序中使用。
与Application.StartupPath相同,但是这也包括应用程序名称,例如“myapp.exe”
source