1

我正在开发 WPF 应用程序,该应用程序很快就必须准备好安装,但是有一个功能允许用户对 app.config 文件进行更改,我不知道如何从应用程序的代码隐藏中做到这一点.另外我不知道安装应用程序后这将如何工作。

简单地说:我有一个窗口,允许用户输入要在另一个应用程序的 web.config 中搜索的文本。所以在我的 app.config 中我有不同的搜索,我希望在安装后用户能够(在窗口的文本框中输入值后)在应用程序的 app.config 中输入新值。

有人可以告诉我这是否可能以及最终我如何实现这一目标?

4

2 回答 2

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");
于 2013-06-17T12:47:31.810 回答
0

这可能有助于 在 WPF 中以简单的方式配置应用程序/用户设置。

于 2013-06-17T11:52:45.283 回答