如何在.NET中获取控制台应用程序的可执行文件路径?
大家好!我正在用C#(.NET 6)编写一个控制台应用程序,需要获取我的.exe文件所在的文件夹路径。我尝试了几种方法,但结果令人困惑。
例如,我从`C:\MyApp`文件夹启动应用程序,但我希望它从同一目录读取`settings.json`文件。我尝试了以下方式:
```csharp
string path = Environment.CurrentDirectory;
Console.WriteLine(path);
```
但是当我从命令行启动应用程序时,如果当前位于另一个文件夹,输出的不是`C:\MyApp`,而是当前工作目录。这是不正确的。
我还尝试了:
```csharp
string path = Assembly.GetExecutingAssembly().Location;
Console.WriteLine(path);
```
但这返回的路径包含文件名(例如`C:\MyApp\MyApp.exe`),而我只需要文件夹。另外,我听说在某些情况下,由于shadow copying,这个方法可能返回临时文件夹的路径。
总之,我彻底困惑了。如何在.NET中正确获取可靠的应用程序文件夹路径,使其能够稳定工作?