2012-05-08 17 views
1

我有一個應用程序,它將單個用戶名和密碼存儲在app.config文件中。 我目前有app.config在運行時可寫,以便用戶可以更改它。常見文件文件夾上的窗體app.config

問題在使用安裝項目進行安裝時開始,app.config安裝在程序文件中,該文件對於任何用戶都是不可寫的。

因此,我已經將app.config位置更改爲通用文件文件夾,以便所有用戶都可以讀取和寫入。

現在,安裝後,似乎存儲在那裏的數據根本無法訪問,使用ConfigurationManager.AppSettings [「networkPath」]例如返回空字符串。

我在做什麼錯?

+0

你需要做的只是從你的安裝程序訪問程序文件中的應用程序配置文件。你用什麼設置? – nawfal

+0

即時通訊使用默認的安裝和部署項目,我怎樣才能訪問應用程序配置文件? –

+0

你的意思是來自visual studio的msi嗎?儘管我不太確定,但它必須有一個選項。但忘記吧,你可以從你的C#應用​​程序中完成。查看我的回答 – nawfal

回答

0

你可以做到這一點有兩種方式:

  1. 給由安裝到App程序文件配置文件特別許可。我們使用innosetup來做到這一點。如果你沒有能力的話,那麼它從你的程序的啓動:

  2. 否則,您可以選擇不同的位置來放置您的AppConfig文件,然後讀取它像這樣:

    ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); 
    fileMap.ExeConfigFilename = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), Assembly.GetEntryAssembly().GetName().Name) + ".exe.config"; 
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, 
                         ConfigurationUserLevel.None); 
    return config.AppSettings.Settings["Key"].Value); 
    

在我看來,這是一個糟糕的選擇。