2016-07-19 4 views
0

모든 프로젝트에서 하나의 app.config가 링크 된 winform C# 응용 프로그램을 작성 중입니다. app.config에서 연결 문자열을 편집하고 업데이트 할 수있는 하나의 프로젝트를 만들려고합니다. 하지만 현재는 특정 프로젝트의 exe.config 만 변경할 수 있습니다. 특정 솔루션의 모든 exe.config를 어떻게 변경할 수 있습니까? 미리 감사드립니다. 연결된 app.config를 편집하고 모든 EXE 구성에서 변경 사항을 저장하는 방법

답변

0

응용 프로그램 폴더의 모든 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); 
      }