我正在研究WPF应用程序,很快就要为安装做好准备,但是有一个功能允许用户更改app.config文件,我不知道如何从代码隐藏中做到这一点应用程序。我也不知道在安装应用程序后这将如何工作。
简单地说:我有一个窗口,允许用户在另一个应用程序的web.config中输入要搜索的文本。所以在我的app.config中我有不同的搜索,我希望在安装用户能够(在窗口的textoxes中输入值后)在应用程序的app.config中输入新值。
有人可以告诉我这是否可能并最终如何实现这一目标?
答案 0 :(得分:2)
我在申请中的表现如何。我有app.config如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="StoreConnectionString"
connectionString="Data Source=.\;MultipleActiveResultSets=True;Initial Catalog=Store;Integrated Security=False;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="ExportPath" value="D:\" />
<add key="CompanyName" value="My Company" />
<add key="mail" value="email@mail.com" />
<add key="phone" value="+992918254040" />
<add key="ExpDate" value="Pink" />
<add key="Print" value="No" />
<add key="EnforcePassw" value="Yes"/>
</appSettings>
</configuration>
所以我可以从我的应用程序更改和保存应用程序设置,这是代码
private void btnSave(object sender, RoutedEventArgs e)
{
//returns path of folder where your application is
string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
//combines path of folder and file
string configFile = System.IO.Path.Combine(appPath, "MyApp.exe.config");
//Defines the configuration file mapping for an .exe application
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = configFile;
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
config.AppSettings.Settings["ExportPath"].Value = txtExport.Text;
config.AppSettings.Settings["CompanyName"].Value = txtComapny.Text;
config.AppSettings.Settings["mail"].Value = txtEmail.Text;
config.AppSettings.Settings["phone"].Value = txtPhone.Text;
config.AppSettings.Settings["Print"].Value = print;
config.AppSettings.Settings["EnforcePassw"].Value = password;
config.AppSettings.Settings["ExpDate"].Value = color;
config.Save();
}
希望它会对你有所帮助!
如果要添加新字符串,请使用此代码;
config.AppSettings.Settings.Add("Key", "Value");
答案 1 :(得分:0)