pravinchopade Ответов: 1

Как редактировать ссылка на приложение.config и сохранить изменения в EXE-файл конфигурации


Я работаю над приложением winform c#, имея один файл app.config, связанный во всех проектах. Я пытаюсь создать один проект, который может редактировать и обновлять строку подключения в app.config. Но в настоящее время я могу изменить только exe.config конкретного проекта. Как я могу изменить все exe. config в конкретном решении?
Заранее спасибо.

Что я уже пробовал:

OpenMappedExeConfiguration и OpenExeConfiguration, но ничего не работает.

1 Ответов

Рейтинг:
11

pravinchopade

Цикл через весь файл exe. config в папке приложения и с помощью XmlDocument; я меняю строку подключения для всех и сохраняю ее снова.

string curAssembly = Assembly.GetExecutingAssembly().Location;
string FolderPath = Path.GetDirectoryName(curAssembly);
string[] files = Directory.GetFiles(FolderPath).Where(x => x.EndsWith(".config")).ToArray();
                foreach (string item in files)
                {
                    XmlDocument XmlDoc = new XmlDocument();
                    XmlDoc.Load(item);
                    foreach (XmlElement xElement in XmlDoc.DocumentElement)
                    {
                        if (xElement.Name == "connectionStrings")
                        {
                            foreach (XmlElement xChild in xElement)
                            {
                                if (xChild.Attributes.Count > 1 && xChild.Attributes[0].Value == ConfigSectionName)
                                {
                                    xChild.Attributes[1].Value = "Data Source=" + cmbDatasource.Text + ";Initial Catalog=" + cmbDatabaseName.Text + ";UID=" + txtUserName.Text + ";password=" + txtPassword.Text + ";Integrated Security = false;";
                                    Connectionstring = xChild.Attributes[1].Value;
                                }
                            }
                        }
                    }
                    XmlDoc.Save(item);
                }