1. 程式人生 > >.NET Core獲取程式所在路徑

.NET Core獲取程式所在路徑

.NET Framework中的做法

  在.NET Framework中,我們可以通過下面的程式碼獲取當前路徑

using (var p = Process.GetCurrentProcess())
{
    string currentPath = p.MainModule.FileName;
}

  通過這種方法獲得的路徑是.exe檔案的完整路徑。
  但是,在.NET Core中,如果這麼獲取,將得到

C:\Program Files\dotnet\dotnet.exe

  可以看到,我們得到了.NET Core Runtime的路徑。這不是我們想要的結果。我們希望得到.dll檔案的路徑,該怎麼辦呢?

System.IO.Directory靜態類中的方法

  我們可以使用System.IO.Directory靜態類中的GetCurrentDirectory()方法。

var directory = System.IO.Directory.GetCurrentDirectory();
Console.WriteLine(directory);

  但是這個方法獲得的是啟動路徑,也就是啟動時命令列的所在路徑。有時候這也不是我們想要的結果。

  

通過反射獲取.dll檔案路徑

  我們可以通過Assembly抽象類的虛屬性Location獲取路徑。

Console.WriteLine
(Assembly.GetEntryAssembly().Location);