Classification: Public Can you explain what you mean by that please? If I am using Hidden/HIdeTarget regardless in a Merge Module or the parent project it should work, right?
-----Original Message----- From: Rob Mensching [mailto:r...@robmensching.com] Sent: June-21-13 2:50 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] How to turn off Logging within C# custom actions [P] Remember, Merge Modules modularizes all identifiers. On Thu, Jun 20, 2013 at 12:13 PM, Steven Ogilvie <steven.ogil...@titus.com>wrote: > Classification: Public > Solved... > This is an issue with Merge Modules, moved the deferred custom actions > that have passwords from the Merge Module to the Product.wxs! > > Is this a MSI issue or a WIX issue? (seems <Property Hidden=Yes> and > <Custom Action HideTarget=yes> doesn't work in Merge Modules :( > > Steve > > -----Original Message----- > From: Steven Ogilvie [mailto:steven.ogil...@titus.com] > Sent: June-20-13 1:12 PM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] How to turn off Logging within C# custom > actions [P] > Importance: High > > Classification: Public > Sigh, > > This is what I did but my SQL Server database password is STILL > showing up in the MSI log file, what is weird is that the deferred > custom actions that are called in the Product.wxs are hidden, but the > deferred custom actions in my merge module are NOT... > > Product.wxs: > <Property Id="MsiLogging" Value="voicewarmupx"/> <Property > Id="DATABASE_PASSWORD" Hidden="yes" Secure="yes"/> > > <CustomAction Id="CA_DataBasePassword.SetProperty" > Property="CA_DataBasePassword" HideTarget="yes" > Value="DATABASE_PASSWORD=[DATABASE_PASSWORD]"/> > > <CustomAction Id="CA_Set_ConfigUtilStr" Property="CA_SETCONFIGUTILSTR" > HideTarget="yes" > Value="KEY0=[DATABASE_USERNAME];KEY1=[DATABASE_PASSWORD];KEY2=[DATABAS > E_SERVERNAME];KEY3=[DATABASE_NAME];KEY4=[DATABASE_WINDOWSAUTHENTICATIO > N];KEY5=[CONFIGUTIL_SERVICE_PATH];KEY6=MyApp.exe.config"/> > > <CustomAction Id="CA_SETCONFIGUTILSTR" BinaryKey="BIN_CustomAction" > DllEntry="CallUpdateConnectionString" HideTarget="yes" Impersonate="no" > Execute="deferred" Return="check" /> > > <InstallExecuteSequence> > <Custom Action="CA_DataBasePassword.SetProperty" > After="InstallFiles">NOT Installed</Custom> <Custom > Action="CA_Set_ConfigUtilStr" > After="InstallValidate">NOT Installed</Custom> <Custom > Action="CA_SETCONFIGUTILSTR" After="InstallFiles">NOT > Installed</Custom> > > In my C# Custom Action DLL: > [CustomAction] > public static ActionResult CallUpdateConnectionString (Session > session) > { > string configFileName = null; > try > { > if (session == null) > { > throw new ArgumentNullException("session"); > } > > var cad = session.CustomActionData; > > var userName = cad["KEY0"]; > var userPassword = cad["KEY1"]; > var sqlServer = cad["KEY2"]; > var databaseName = cad["KEY3"]; > var tempStr = cad["KEY4"]; > var serverPath = cad["KEY5"]; > configFileName = cad["KEY6"]; > var windowsAthentication = tempStr == "1"; > > Am I doing anything wrong? > > Steve > > -----Original Message----- > From: Fyodor Koryazhkin [mailto:fyodor...@gmail.com] > Sent: June-20-13 7:10 AM > To: wix-users@lists.sourceforge.net > Subject: Re: [WiX-users] How to turn off Logging with C# custom > actions > > Hi, > To prevent CustomActionData to be logged you should add > *msidbCustomActionTypeHideTarget > *(8192) attribute to CustomAction attributes. > > To read CustomActionData you should create property in the following > format: PROPERTY1=VALUE1;PROPERY2=VALUE2;....;PROPERTYn=VALUEn. > Then you read it like this: CustomActionData cad = > session.CustomActionData; values you read: string VALUE1= > cad[PROPERTY1]; string value2= cad[PROPERTY2]; Please note that in > general case the value can be null and in this case the above example will > throw an exception. > Therefore it is helpful first to check if specified element of an > array exists. > > Regards > > Fyodor Koryazhkin > > > > > I have database passwords and web app pool username passwords > > showing up in my MSI log file I have verbose logging on: > > <Property Id="MsiLogging" Value="voicewarmupx"/> > > > > I have the properties set like this: > > <Property Id="DATABASE_PASSWORD" Hidden="yes" Secure="yes"/> > > > > I have my deferred custom action set like this: > > <CustomAction Id="CA_Set_ConfigUtilStr" Property="CA_SETCONFIGUTILSTR" > > HideTarget="yes" > > > > Value="[DATABASE_USERNAME]|[DATABASE_PASSWORD]|[DATABASE_SERVERNAME] > > |[ > > DATABASE_NAME]|[DATABASE_WINDOWSAUTHENTICATION]|[CONFIGUTIL_SERVICE_ > > PA > > TH]|MyApplication.exe.config"/> > > > > <CustomAction Id="CA_SETCONFIGUTILSTR" BinaryKey="BIN_CustomAction" > > DllEntry="CallUpdateServerConnectionString" Impersonate="no" > > Execute="deferred" Return="check" /> > > > > <InstallExecuteSequence> > > <Custom Action="CA_SETCONFIGUTILSTR" After="InstallFiles">NOT > > Installed</Custom> > > > > in my custom action: > > > > [CustomAction] > > public static ActionResult > > CallUpdateServerConnectionString(Session > > session) > > { > > string configFileName = null; > > try > > { > > if (session == null) > > { > > throw new ArgumentNullException("session"); > > } > > > > var tempString = GetSessionProperty(session, > > "CustomActionData", false); > > var parts = tempString.Split(new[] { '|' }); > > var userName = parts[0]; > > var userPassword = parts[1]; > > var sqlServer = parts[2]; > > var databaseName = parts[3]; > > var tempStr = parts[4]; > > var serverPath = parts[5]; > > configFileName = parts[6]; > > var windowsAthentication = tempStr == "1"; > > > > and the function that gets the CustomActionData is: > > > > private static string GetSessionProperty(Session session, string > > propertyName, bool isCustomActionData) > > { > > string sessionProperty = string.Empty; > > > > try > > { > > if (session == null) > > { > > throw new ArgumentNullException("session"); > > } > > > > sessionProperty = isCustomActionData ? > > session.CustomActionData[propertyName] : session[propertyName]; > > } > > catch (Exception ex) > > { > > WriteErrorLogInstall(session, "Exception when > > executing GetSessionProperty.", ex, true); > > } > > > > return sessionProperty; > > } > > > > if I call the above function with isCustomActionData = true the > > custom action fails with "index was outside the bounds of the array" > > so it is false. > > > > the only part in the MSI that logs it is the CustomActionData... > > > > How can I turn logging off when i get the CustomActionData then turn > > the logging back on? > > > > most likely something VERY simple that I have missed :( > > > > Thanks, > > > > Steve > > ---------------------------------------------------------------------- > -------- This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > This message has been marked as Public by Steven Ogilvie on June-20-13 > 1:11:52 PM. > > The above classification labels were added to the message by TITUS > Message Classification. For more information visit www.titus.com. > > > ---------------------------------------------------------------------- > -------- This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > This message has been marked as Public by Steven Ogilvie on June-20-13 > 3:13:02 PM. > > The above classification labels were added to the message by TITUS > Message Classification. > For more information visit www.titus.com. > > > ---------------------------------------------------------------------- > -------- This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users This message has been marked as Public by Steven Ogilvie on June-21-13 8:31:10 AM. The above classification labels were added to the message by TITUS Message Classification. For more information visit www.titus.com. ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users