加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#-4.0 – 如何在安装项目中写入app.config并在程序中使用它

发布时间:2020-12-15 04:32:02 所属栏目:百科 来源:网络整理
导读:我创建了一个Installhelper.cs,它是从安装程序中获取的. 使用这段代码(A)覆盖Install()方法. 插入到app.config的这些值在安装后创建的[projectName] .exe.config文件中不可用. 我已经手动在app.config中添加了如下所示的部分(B) 数据传递给安装程序类,但数据
>我创建了一个Installhelper.cs,它是从安装程序中获取的.
>使用这段代码(A)覆盖Install()方法.

插入到app.config的这些值在安装后创建的[projectName] .exe.config文件中不可用.
我已经手动在app.config中添加了如下所示的部分(B)

数据传递给安装程序类,但数据不会写入app.config字段.它们在安装期间在创建的配置文件中保持相同.

任何帮助是极大的赞赏.我花了将近一天的时间.

代码A:

[RunInstaller(true)]
public partial class Installation : System.Configuration.Install.Installer
{
    public Installation()
    {
        InitializeComponent();
    }

    public override void Install(IDictionary stateSaver)
    {
        //base.Install(stateSaver);

        try
        {
            // In order to get the value from the textBox named 'EDITA1' I needed to add the line:
            // '/PathValue = [EDITA1]' to the CustomActionData property of the CustomAction We added. 

            string userName = Context.Parameters["userName"];
            string password = Context.Parameters["password"];
            string folderPath = Context.Parameters["path"];

            MessageBox.Show(userName);
            MessageBox.Show(password);
            MessageBox.Show(folderPath);

            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
           //config.AppSettings.Settings.Add("userName",userName);
           //config.AppSettings.Settings.Add("password",password);
           //config.AppSettings.Settings.Add("foderPath",folderPath);





            config.AppSettings.Settings["userName"].Value = userName;
            config.AppSettings.Settings["password"].Value = password;
            config.AppSettings.Settings["foderPath"].Value = folderPath;
            config.Save(ConfigurationSaveMode.Full);
            ConfigurationManager.RefreshSection("appSettings");




        }
        catch (FormatException e)
        {
            string s = e.Message;
            throw e;
        }
    }
}

应用配置中添加的部分是
代码B:

<appSettings>
<add key="userName" value="" />
<add key="password" value="" />
<add key="foderPath" value="" />
</appSettings>

解决方法

谢谢.我们有这个确切的问题,无法弄清楚为什么它不会写入文件.
我做的唯一不同的事情是从应用程序获取路径.
string path = Application.ExecutablePath;
Configuration config = ConfigurationManager.OpenExeConfiguration(path);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读