.NET Core獲取程式所在路徑
阿新 • • 發佈:2019-01-22
.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);