雖然我的工作,我有我的應用程序的位置硬編碼:跟蹤我的程序安裝位置的最簡單方法是什麼?
public static string MYPROGRAM_PATH = "/path/to/my/workspace";
很顯然,一旦我打包和分發我的應用程序,這將無法工作。我如何跟蹤它的安裝位置?
我主要關注linux打包(特別是.deb),但我打算將此作爲一個練習來學習有關Windows和Mac的打包,因此我們歡迎所有提示。
雖然我的工作,我有我的應用程序的位置硬編碼:跟蹤我的程序安裝位置的最簡單方法是什麼?
public static string MYPROGRAM_PATH = "/path/to/my/workspace";
很顯然,一旦我打包和分發我的應用程序,這將無法工作。我如何跟蹤它的安裝位置?
我主要關注linux打包(特別是.deb),但我打算將此作爲一個練習來學習有關Windows和Mac的打包,因此我們歡迎所有提示。
有多種方式來確定.NET
Environment.CurrentDirectory
安裝/運行位置將獲得當前的工作目錄。
如果您已經安裝了應用程序在Program Files文件的特定位置,您可以使用:
Environment.SpecialFolder.ProgramFiles;
,我幾乎可以肯定有一些其他的方法來找出當前的運行路徑。
在Linux方面,我假設這將在Mono下運行?如果是這樣,我不確定他們是如何處理特殊文件夾的。
享受!
如果你想在路徑規劃的.exe,至少在微軟的.NET這是System.Reflection.Assembly.GetExecutingAssembly().Location
(或Path.GetDirectoryName(...)
如果你想要的目錄) 我相信,因爲2.0或在此之前已經在.NET,所以單應(剛剛檢查過,至少包含在Mono文檔中)。
如果您打算將軟件打包到deb(或者rpm)軟件包中,爲什麼不把軟件包安裝到/ usr/bin中,或者如果您對此不熟悉,請安裝它在/ usr/local/bin中。然後,您不必針對您的程序所在的位置播放20個問題。請查看「hier」的手冊頁以獲取有關文件應安裝在文件系統上的更多詳細信息。