pat=/(^|\(:nl:\))\(:markup:\)[^\S ]*\[([=@])((?: `\.!+.*?)+)\2\]/seimpat=/\(:markup(\s+([^ ]*?))?:\)[^\S ]*\[([=@])(.*?)\3\]/seipat=/\(:markup(\s+([^ ]*?))?:\)[^\S ]* (.*?)\(:markupend:\)/seipat=/\(:source\s+(info|langs)\s*:\)/ieusing System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.IO; using System.Reflection; using System.Diagnostics; namespace MiniInstallerClass { [RunInstaller(true)] public partial class Installer1 : Installer { public Installer1() { InitializeComponent(); } public virtual string AssemblyDir { get { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); } } public virtual string MyDll { get { return Path.Combine(AssemblyDir, "configuration.xml"); } } public override void Install(IDictionary stateSaver) { base.Install(stateSaver); Process a = Process.Start("notepad.exe", "\"" + MyDll + "\""); a.WaitForExit(); } public override void Uninstall(IDictionary savedState) { base.Uninstall(savedState); Process a = Process.Start("notepad.exe", "\"" + MyDll + "\""); a.WaitForExit(); } } }