我正在寻找我的应用程序的目录似乎是不同于常规的c#?
在Path.GetDirectoryName(Application.ExecutablePath)中不起作用.
解决方法
一个正确的跨平台解决方案将是
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
请注意,Environment.CurrentDirectory和Assembly.GetExecutingAssembly().位置(更确切地说,它的目录)在语义上是错误的,即使它们通常是但不总是相同的目录:
>当前目录是“工作目录”,可以在任何时间点更改,如“cd”命令在shell中.>执行程序集是包含当前正在运行的代码的程序集,并且可能在或不在与实际应用程序在同一目录中.例如,如果您的应用程序是依赖“B.dll”的“A.exe”,并且B.dll中的一些代码调用Assembly.GetExecutingAssembly(),则会导致“/path/to/B.dll”.