【发布时间】:2016-04-13 23:12:20
【问题描述】:
我需要检索使用mkbundle --static 创建的应用程序可执行文件的完整路径(直到目录)。这是我在 OSX 上测试的 CLI 应用程序,假设可执行文件位于 /usr/local/bin/。
事情可能会更复杂(但我真的不知道),因为我想从任何目录运行该实用程序,所以我将上述路径添加到$PATH 环境变量(在这种情况下,它已经存在了)。
现在,假设应用程序在位于~/dir1/dir2/ 时启动,并假设它打印Application.StartupPath。这会产生路径~/dir1/dir2/。相反,我想始终检索启动应用程序的 real 目录,即/usr/local/bin/。
有没有办法实现这一点(最好是独立于平台的方式)?
我使用配置了 Mono/.NET 4.5 和 C# 6.0 的 Xamarin Studio。
更新: 获取typeof(Program).Assembly.Location 也无济于事。
我的意思是,当我只运行正常的应用程序可执行文件(在构建过程中生成)时,它运行良好。
但是,如果我运行使用 mkbundle --static 制作的包,Location 只会给出可执行文件名称 App.exe,而没有任何先前的路径。
可能它只是显示包内的相对路径。有什么方法可以让我获得捆绑包本身的路径吗?..
【问题讨论】:
标签: c# .net reflection path mono