Как прокомментировано, вы должны использовать XmlDocument
для разбора вашей конфигурации.
Но если вы должны использовать регулярное выражение, вам нужно включить опцию Singleline, чтобы символ точки (.) Также совпадал с символами новой строки, например,
string matchCodeTag = @"<Executables>(.*)</Executables>";
string textToReplace = File.ReadAllText(@"C:\Temp\Controller.exe.config");
string replaceWith = "<add appName=\"Disable\" exeName=\"C:\\Temp\\Disable.exe\" startOrder=\"0\" />";
string output = Regex.Replace(textToReplace, matchCodeTag,
replaceWith, RegexOptions.Singleline);
, или вы можете установить опцию в шаблон регулярного выражения, подобный этому
string matchCodeTag = @"(?s)<Executables>(.*)</Executables>";
Ваш шаблон не нуждается в вопросительном знаке, так как * уже "равен нулю или более соответствует"