Mono C# 获取应用程序路径

发布于 2024-11-14 02:11:37 字数 114 浏览 2 评论 0原文

我正在寻找我的应用程序的目录,它似乎与常规 c# 不同?

Path.GetDirectoryName(Application.ExecutablePath) 不起作用。

I am looking to get the directory of my application it seems to be different from regular c#?

As in Path.GetDirectoryName(Application.ExecutablePath) is not working.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愚人国度 2024-11-21 02:11:37

一种正确的跨平台解决方案是请

Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)

注意, Environment.CurrentDirectoryAssembly.GetExecutingAssembly().Location (更准确地说,其目录)在语义上都是错误的,即使它们通常(但并非总是)是同一个目录:

  • 当前目录是“工作目录”,可以随时更改,就像 shell 中的“cd”命令一样。
  • 执行程序集是包含当前正在运行的代码的程序集,可能与实际应用程序位于同一目录中,也可能不位于同一目录中。例如,如果您的应用程序是“A.exe”,它具有依赖项“B.dll”,并且 B.dll 中的某些代码调用 Assembly.GetExecutingAssembly(),则会导致“/path/到/B.dll”。

One correct and cross-platform solution would be

Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)

Note that both Environment.CurrentDirectory and Assembly.GetExecutingAssembly().Location (more exactly, the directory thereof) are semantically wrong even though they are often - but not always - the same directory:

  • The current directory is the "working directory" and can be changed at any point in time, like the "cd" command does in a shell.
  • The executing assembly is the assembly that contains the code which is currently running, and may or may not be in the same directory as the actual application. For instance if your application is "A.exe" which has a dependency "B.dll", and some code in B.dll calls Assembly.GetExecutingAssembly(), it would result in "/path/to/B.dll".
走过海棠暮 2024-11-21 02:11:37

尝试Assembly.GetExecutingAssembly().Location

Try Assembly.GetExecutingAssembly().Location

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文