2017-10-05 261 views
0

我有一个小程序,我在PC上复制粘贴东西从A到B.目录路径写在配置文件中,当我(在应用程序中)更改文本框中的目录时,它正在更新配置文件。我检查了它,价值被立即重写在适当的关键。当我关闭应用程序并重新打开它时,它将更新到先前更改的目录路径,但我不想关闭应用程序并重新打开。我有一个组合框,我希望它在组合框重新选择事件触发器后立即更新。但是在运行时(尽管它已经在配置中更改),它不会更新应用程序中显示的目录路径。更新/刷新配置文件

我阅读并尝试了我在网上找到的一切,可悲的是没有任何帮助。并不是每一个每一种

ConfigurationManager.RefreshSection("appSettings"); 

这是我的配置:

<appSettings file=""> 
<clear /> 
<add key="SourcepathClient" value="D:\xxx" /> 
<add key="SourcepathWin32" value="D:\xxx" /> 
<add key="DestinationpathUpdatePackages" value="D:\xxx" /> 
<add key="DestinationpathClient" value="D:\xxx" /> 
<add key="5_9_0-DestinationpathClient" value="D:\xxxt" /> 
<add key="5_9_0-DestinationpathUpdatePackages" value="D:\xxx" /> 
<add key="5_9_1-DestinationpathClient" value="D:\xxx" /> 
<add key="5_9_1-DestinationpathUpdatePackages" value="D:xxx" /> 
<add key="5_9_2-DestinationpathClient" value="D:\xxx" /> 
<add key="5_9_2-DestinationpathUpdatePackages" value="D:\xxx" /> 
</appSettings> 

这个代码:

Configuration config = ConfigurationManager.OpenExeConfiguration(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "UpdatePackager.exe")); 
config.AppSettings.Settings[ComboBoxVersion.Text + "-DestinationpathClient"].Value = TextBoxDestinationpathClient.Text; 
config.AppSettings.Settings[ComboBoxVersion.Text + "-DestinationpathUpdatePackages"].Value = TextBoxDestinationpathUpdatePackage.Text; 
config.AppSettings.SectionInformation.ForceSave = true; 
config.Save(ConfigurationSaveMode.Full); 
ConfigurationManager.RefreshSection("appSettings"); 

我希望有人能帮助我。 Regards

+0

也许尝试写你自己的配置XML文件? – oopsdazie

回答

0

我认为没有问题的代码它与您的访问相关的问题,它会有所不同,如果您在IIS中运行您的应用程序并从Visual Studio运行您的测试示例。 ASP.NET进程标识是IIS帐户,ASPNET或NETWORK SERVICES(取决于IIS版本)。

可能需要授予ASPNET或NETWORK SERVICES修改web.config所在文件夹的访问权限。