Yes. If the Property is defined hidden and compiled into the Merge Module
and the CustomAction is set to HideTarget and compiled in the Merge Module
then the toolset should take care of modularizing things for you.


On Fri, Jun 21, 2013 at 5:31 AM, Steven Ogilvie <steven.ogil...@titus.com>wrote:

> 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
>
>
------------------------------------------------------------------------------
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

Reply via email to