2017-04-25 166 views
-2

從app.config中我想動態獲取基本目錄路徑項目的exe存在。那可能嗎?如何獲取App.config中的基礎目錄路徑?

例如,在C#代碼中,我們可以寫出如下得到的路徑。
string executablePath = AppDomain.CurrentDomain.BaseDirectory

有什麼辦法可以在app.config中獲取此路徑嗎?

<add key="AssemblyPath" value="????" />價值寫什麼?因爲它會因用戶而異,如何動態獲取? ,然後在該項目中,我們要以此爲

string executablePath = ConfigurationManager.AppSettings["AssemblyPath"];

我查了StackOverflow的流量很多帖子,但沒有得到這一特定的答案。

+0

什麼是設置在配置文件中的路徑只是爲了以後使用它的代碼時,可以只調用'AppDomain.CurrentDomain的價值。 BaseDirectory'?配置文件沒有執行任何它只有xml,你將不得不運行應用程序,並寫入配置文件。 – JSteward

+0

@JSteward所以我們正在寫的,我們正在下載的PDF文件,並在任何環境分期的/ dev /生產,我們希望能夠靈活地處理這種情況,我們保存這個文件。我們希望將其保存爲裝配路徑的默認位置。因此,如果登臺環境想更改路徑,他們應該可以通過更改staging_app.config來完成。這就是我們希望有這config.file – S52

+0

@JSteward原因是這樣解釋還好,除去負標誌? – S52

回答

0

appSettings部是可以與所述鍵或者與索引訪問相關聯的字符串鍵和字符串值的集合的簡單表示。它不會對字符串執行任何代碼,必須加載該應用才能獲得AppDomain.CurrentDomain

0

你可以做的反而是有一些像

<add key="AssemblyPath" value="!!BASE_DIRECTORY!!" /> 

,然後在你的代碼

var assemblyPathConfigEntry = ConfigurationManager.AppSettings["AssemblyPath"]; 
string pathToUse; 
switch(assemblyPathConfigEntry) 
{ 
    case "!!BASE_DIRECTORY!!": 
     pathToUse = AppDomain.CurrentDomain.BaseDirectory; 
     break; 
    default: 
     pathToUse = assemblyPathConfigEntry; 
     break; 
} 

return pathToUse; 

在這種情況下,如果你把!!BASE_DIRECTORY!!作爲一種價值,它會得到當前基本目錄否則它只會使用你放在那裏的路徑。

0

這裏的另一種方式如何

AppDomain.CurrentDomain.BaseDirectory 

Path.GetDirectoryName(Application.ExecutablePath) 
相關問題