我使用下面的代码来更新app.config的一些值(我在app.config文件中有配置文件路径)。当部署它的获取错误时我认为它因为app.config文件改为exe 。如何将我的代码更改为调试时间以及部署时间
{{1}}
答案 0 :(得分:1)
嗨,谢谢各方回复。我解决了自己的问题,这只是一个混乱。我是一个java人,我是.net在.net App.config文件中的新。编译并在Debug文件夹文件中创建.config,即使它调试它访问Debug文件夹中的.config文件。实际上,当你以编程方式更改App.config中的值时,它不会更改App.config文件。它改变调试文件中的.config,如调试文件夹中的[project name] .vshost.exe.config。
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["InvoiceInterval"].Value = InvoiceIntervalVal.ToString();
config.AppSettings.Settings["directPaymentInterval"].Value = directPaymentIntervalVal.ToString();
config.AppSettings.Settings["paymentStatusInterval"].Value = paymentStatusIntervalVal.ToString();
config.Save();
ConfigurationManager.RefreshSection("appSettings");
使用上面的代码,您也可以在运行时更改App.config文件的调试时间值。但这些更改似乎不在App.config文件中。但你可以看到它所属的exe文件的变化。在我的情况下它是在src \ Vetserve.Credicare \ bin \ Debug \ Vetserve.Credicare.vshost.exe.config
答案 1 :(得分:0)
也许尝试将App.config的文件“复制到输出目录”属性设置为“始终复制”。
答案 2 :(得分:0)
After compilation App.Config will be available as
YourConsoleApplication.exe.Config inside application bin.
You can do like:
var beforeInvoiceInterval = ConfigurationManager.AppSettings
["InvoiceInterval"].ToString();
ConfigurationManager.AppSettings["InvoiceInterval"] = "Your value";
var afterInvoiceInterval = ConfigurationManager.AppSettings
["InvoiceInterval"].ToString();
afterInvoiceInterval will contain the value you assigned but it'll not
modify YourConsoleApplication.exe.Config.