2011-11-17 27 views
2

我在我添加一個文件的app.config file.I已經寫在文件中的一些代碼問題,同時從app.config文件讀取值

<appSettings> 
     <add key ="FlagForArchiving" value="true"/> 
    </appSettings> 

在「做在C#一個Windows應用程序在Program.cs'文件我讀這個值作爲

ConfigurationSettings.AppSettings["FlagForArchiving"].ToString(); 

在本地機器上,我可以檢索配置文件的價值,但每當我構建的應用程序和任何其他機器上運行的話,我不能讀取配置文件中的值我試圖在Windows 7上運行我的應用程序。請幫助我。提前感謝。

+0

似乎是一個權限問題。但是,你能提供完整的例外細節嗎? – Kash

+0

@Polity - 他沒有從手機應用程序中說出任何內容 –

+0

@ Polity:鏈接中的問題特定於WP7上的配置,但OP的操作系統是Windows 7.因此,不是重複的。 – Kash

回答

1

app.config被重命名爲<MyProgramName>.exe.config。當你的程序運行時,它會查找<MyProgramName>.exe.config文件,而不是app.config

您需要重命名的文件(<MyProgramName>.exe.config)與程序一起部署。

對於您的情況,您需要複製OBViewer.exeOBViewer.exe.configOBViewer.exe依賴的任何其他文件(例如debug/release目錄中的其他.dll程序集)。

順便說一句,這個重命名的文件通常統稱爲「的app.config」,即使不具有相同的文件名了。

-1

並且app.config文件存在於另一臺機器上? 之前,如果存在的話

你得到的異常說什麼不正確讀取支票:「FileNotFoundException異常」

編輯 這裏是正確的方法!當你建立

if (File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)) 
{ 
    MessageBox.Show(ConfigurationSettings.AppSettings["FlagForArchiving"].ToString()); 
} 
+0

-1對於'App.Config'永遠不會在機器上存在。它被稱爲' .exe.config'! – Fischermaen

+0

他稱之爲app.config。那就是我爲什麼使用這個字符串。如果我使用其他任何東西,我只會把他迷惑到 –

+1

@ masterchris_99:這並不意味着你不能糾正他。相反,你給出了另一個不準確的陳述,這實際上增加了混亂! – Kash