<pre lang="c#">using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Deployment.WindowsInstaller; using System.Configuration; namespace CustomAction { public class CustomAction { [CustomAction] public static ActionResult saveSales(Session session) { string salesPass = session["sales_pwd"]; var fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = "myApp.exe.config"; var config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); config.AppSettings.Settings["salesPass"].Value =salesPass; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); return ActionResult.Success; } [CustomAction] public static ActionResult saveSuper(Session session) { string adminPass = session["admin_pwd"]; var fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = "myApp.exe.config"; var config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); config.AppSettings.Settings["superPass"].Value = adminPass; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); return ActionResult.Success; } } }
<InstallExecuteSequence> <Custom Action='saveSales' After='InstallFinalize'>NOT Installed</Custom> <Custom Action='saveSuper' After='saveSales'>NOT Installed</Custom> </InstallExecuteSequence> <Binary Id="CustomAction.dll" SourceFile="$(var.caPath)\CustomAction.CA.dll" /> <CustomAction Id="saveSales" BinaryKey="CustomAction.dll" DllEntry="saveSales" Execute="immediate" /> <CustomAction Id="saveSuper" BinaryKey="CustomAction.dll" DllEntry="saveSuper" Execute="immediate" />
config.AppSettings.Settings["superPass"].Value = adminPass; config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)