Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
I think you can simplify what you have: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id=ServiceInstaller Guid=* DiskId=1 ServiceInstall Id=ServiceInstaller Name=XPedientServiceHost Start=auto ErrorControl=normal Type=ownProcess Account=[SERVICEUSER] Password=[SERVICEPASSWORD] /ServiceInstall /Component /Directory /Directory Then simply pass in on the command line SERVICEUSER and SERVICEPASSWORD. You should not need the custom actions and multiple properties for the same elements. You may need to mark the properties as secure to get them to the execute sequence. As for using the module configuration, I didn't find it trivial. Here is an example that reparents an entry in the merge module's directory table with a property from the msi: in the merge module you would have: Configuration Name=SMPRODNAME Format=Key Type=Identifier DefaultValue=SMPRODNAME Description=Start Menu Path DisplayName=Start Menu Folder/ Substitution Table=Directory Column=Directory_Parent Row=SMHelp Value=[=SMPRODNAME]/ Directory Id=TARGETDIR Name=SourceDir Directory Id=SMHelp Name=Help Documentation ShortName=HELPDOC / ... /Directory The configuration updates the directory table changing the parent of the SMHelp to be the SMPRODNAME property. This happens when the merge module is imported by the msi. The SMPRODNAME property does not have to be defined anywhere in the merge module. hope this helps -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Passing-Values-from-the-ProductModule-to-a-MergeModule-tp5318970p5321075.html Sent from the wix-users mailing list archive at Nabble.com. -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Even after simplifying, the data was not passed to the merge module. I am working on the configuration/substitution nodes now. Any idea what the table name would be for the substitution for what I am trying to do? -Original Message- From: bpackard [mailto:bill.pack...@kepware.com] Sent: Wednesday, July 21, 2010 8:34 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule I think you can simplify what you have: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id=ServiceInstaller Guid=* DiskId=1 ServiceInstall Id=ServiceInstaller Name=XPedientServiceHost Start=auto ErrorControl=normal Type=ownProcess Account=[SERVICEUSER] Password=[SERVICEPASSWORD] /ServiceInstall /Component /Directory /Directory Then simply pass in on the command line SERVICEUSER and SERVICEPASSWORD. You should not need the custom actions and multiple properties for the same elements. You may need to mark the properties as secure to get them to the execute sequence. As for using the module configuration, I didn't find it trivial. Here is an example that reparents an entry in the merge module's directory table with a property from the msi: in the merge module you would have: Configuration Name=SMPRODNAME Format=Key Type=Identifier DefaultValue=SMPRODNAME Description=Start Menu Path DisplayName=Start Menu Folder/ Substitution Table=Directory Column=Directory_Parent Row=SMHelp Value=[=SMPRODNAME]/ Directory Id=TARGETDIR Name=SourceDir Directory Id=SMHelp Name=Help Documentation ShortName=HELPDOC / ... /Directory The configuration updates the directory table changing the parent of the SMHelp to be the SMPRODNAME property. This happens when the merge module is imported by the msi. The SMPRODNAME property does not have to be defined anywhere in the merge module. hope this helps -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Passing-Values-from-the-ProductModule-to-a-MergeModule-tp5318970p5321075.html Sent from the wix-users mailing list archive at Nabble.com. -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
I assume Property -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Wednesday, July 21, 2010 9:51 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Even after simplifying, the data was not passed to the merge module. I am working on the configuration/substitution nodes now. Any idea what the table name would be for the substitution for what I am trying to do? -Original Message- From: bpackard [mailto:bill.pack...@kepware.com] Sent: Wednesday, July 21, 2010 8:34 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule I think you can simplify what you have: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id=ServiceInstaller Guid=* DiskId=1 ServiceInstall Id=ServiceInstaller Name=XPedientServiceHost Start=auto ErrorControl=normal Type=ownProcess Account=[SERVICEUSER] Password=[SERVICEPASSWORD] /ServiceInstall /Component /Directory /Directory Then simply pass in on the command line SERVICEUSER and SERVICEPASSWORD. You should not need the custom actions and multiple properties for the same elements. You may need to mark the properties as secure to get them to the execute sequence. As for using the module configuration, I didn't find it trivial. Here is an example that reparents an entry in the merge module's directory table with a property from the msi: in the merge module you would have: Configuration Name=SMPRODNAME Format=Key Type=Identifier DefaultValue=SMPRODNAME Description=Start Menu Path DisplayName=Start Menu Folder/ Substitution Table=Directory Column=Directory_Parent Row=SMHelp Value=[=SMPRODNAME]/ Directory Id=TARGETDIR Name=SourceDir Directory Id=SMHelp Name=Help Documentation ShortName=HELPDOC / ... /Directory The configuration updates the directory table changing the parent of the SMHelp to be the SMPRODNAME property. This happens when the merge module is imported by the msi. The SMPRODNAME property does not have to be defined anywhere in the merge module. hope this helps -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Passing-Values -from-the-ProductModule-to-a-MergeModule-tp5318970p5321075.html Sent from the wix-users mailing list archive at Nabble.com. -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule - Solved (plus a question for clarification)
That is what I thought, but I was still having problems. I have resolve the issue for what I need, (at least for now). In the main product module, you need to declare the properties as follows: Property Id=DOMAIN SuppressModularization=yes Secure=yes / Property Id=USER SuppressModularization=yes Secure=yes / Property Id=PASSWORD SuppressModularization=yes Secure=yes / Then, in the Merge Module you have to set it up to receive the configuration, and map it to the properties, this is what I have in my merge module Configuration Name=DOMAIN Format=Key Type=Identifier DefaultValue=DOMAIN Description=Service Domain DisplayName=Service Domain/ Configuration Name=USER Format=Key Type=Identifier DefaultValue=USER Description=Service User DisplayName=Service User/ Configuration Name=PASSWORD Format=Key Type=Identifier DefaultValue=PASSWORD Description=Service Password DisplayName=Service Password/ I was able to use the values in my service installer as follows: !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=My Service Description=My Service Start=auto Account=[DOMAIN]\[USER] Password=[PASSWORD] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall You also have to declare the properties Property Id=DOMAIN SuppressModularization=yes Secure=yes / Property Id=USER SuppressModularization=yes Secure=yes / Property Id=PASSWORD SuppressModularization=yes Secure=yes / What I was unable to get working is the code that combines the Domain\User in a custom action, I suppose this has to do with the ordering if the CA, Property Id=PermissionableUser Value=user/ CustomAction Id='SetPermissionableUser' Property='PermissionableUser' Value='[DOMAIN]\[USER]' / InstallExecuteSequence Custom Action='SetPermissionableUser' After='LaunchConditions'/Custom /InstallExecuteSequence Can someone comment as to when the CA should execute to have access to the imported properties? The location above does not work because the values are still initialized. (Also, Thanks to everyone that provided pointers, this would be a good candidate for the WiX Wiki or tutorial, should someone care to add it). I pruned the rest of the conversation so that this message is uncluttered. -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] Passing Values from the ProductModule to a MergeModule
This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id=ServiceUser Value=administrator/ Property Id=ServicePassword Value=password / CustomAction Id='SetServiceUser' Property='ServiceUser' Value='[SERVICEUSER]' / CustomAction Id='SetServicePassword' Property='ServicePassword' Value='[SERVICEPASSWORD]' / InstallExecuteSequence Custom Action='SetServiceUser' After='LaunchConditions'/Custom Custom Action='SetServicePassword' After='LaunchConditions'/Custom /InstallExecuteSequence /Module /Wix I have tried it with and without the custom action and additional properties. I just cannot seem to figure out how to get the information passed into the merge module; all of the googling I did indicated that others had tried, but I was not able to find any further hints than what I have included within this request for help. I did see that Rob had answered a similiar problem quite sometime ago but I did not understand his reply about using .Module/@Property, and have not been able to find any sort of information as to how that would work either. The Product Module looks like this: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Product Id=GUID3 Name= Language=1033 Version=1.4.3.0 UpgradeCode=GUID4 Manufacturer= Package Id=* InstallerVersion=200 Compressed=yes Keywords= Description= / Media Id=1 Cabinet=WindowsService.cab EmbedCab=yes DiskPrompt= Installation Media/ Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id=XT Name=XT !-- WindowsService -- Directory Id=WINDOWSSERVICE Name=WindowsService Merge Id='mm.xpj.winservice' Language='1033' SourceFile='WindowsService.msm' DiskId='1' ConfigurationData Name='SERVICEUSER' Value='[XPJDOMAIN]\[XPJUSER]'/ ConfigurationData Name='SERVICEPASSWORD' Value='[XPJPASSWORD]'/ /Merge SNIPPED !-- ** Command Line Parameters, and Actions to Retrieve and User them ** -- !-- Command Line Parameters (and their defaults -- Property Id=XPJDOMAIN Value=XPTDomain / Property Id=XPJUSER Value=XPTUser / Property Id=XPJPASSWORD Value=XPTPassword / !-- Custom Actions used to set the Command Line Parameters to the properties used for installation -- CustomAction Id='SetPermissionableUser' Property='PermissionableUser' Value='[XPJDOMAIN]\[XPJUSER]' / !-- ** Install/Uninstall Actions ** -- !-- Install/Uninstall Actions -- InstallExecuteSequence Custom Action='SetPermissionableUser' After='LaunchConditions'/Custom RemoveExistingProducts After=InstallFinalize/RemoveExistingProducts /InstallExecuteSequence /Product /Wix -- This SF.net email is sponsored by Sprint What will you do
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id=ServiceUser Value=administrator/ Property Id=ServicePassword Value=password / CustomAction Id='SetServiceUser' Property='ServiceUser' Value='[SERVICEUSER]' / CustomAction Id='SetServicePassword' Property='ServicePassword' Value='[SERVICEPASSWORD]' / InstallExecuteSequence Custom Action='SetServiceUser' After='LaunchConditions'/Custom Custom Action='SetServicePassword' After='LaunchConditions'/Custom /InstallExecuteSequence /Module /Wix I have tried it with and without the custom action and additional properties. I just cannot seem to figure out how to get the information passed into the merge module; all of the googling I did indicated that others had tried, but I was not able to find any further hints than what I have included within this request for help. I did see that Rob had answered a similiar problem quite sometime ago but I did not understand his reply about using .Module/@Property, and have not been able to find any sort of information as to how that would work either. The Product Module looks like this: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Product Id=GUID3 Name= Language=1033 Version=1.4.3.0 UpgradeCode=GUID4 Manufacturer= Package Id=* InstallerVersion=200 Compressed=yes Keywords= Description= / Media Id=1 Cabinet=WindowsService.cab EmbedCab=yes DiskPrompt= Installation Media/ Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder' Name='PFiles' Directory Id=XT Name=XT !-- WindowsService -- Directory Id=WINDOWSSERVICE Name=WindowsService Merge Id='mm.xpj.winservice' Language='1033' SourceFile='WindowsService.msm' DiskId='1' ConfigurationData Name='SERVICEUSER' Value='[XPJDOMAIN]\[XPJUSER]'/ ConfigurationData Name='SERVICEPASSWORD' Value='[XPJPASSWORD]'/ /Merge SNIPPED !-- ** Command Line Parameters, and Actions to Retrieve and User them
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Slight Mis-post In the MergeModule, I have Property Id=SERVICEUSER Value=DOMAIN/USER/ Property Id=SERVICEPASSWORD Value=PASSWORD / When I look at the log, I can see that my custom actions inside the merge module are working, however, the data is never received from the Product Module (Here is the snippet of the log)... MSI (s) (F4:C0) [18:32:04:396]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (F4:C0) [18:32:04:396]: Note: 1: 2205 2: 3: ActionText Action start 18:32:04: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (F4:C0) [18:32:04:396]: PROPERTY CHANGE: Modifying ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Its new value: 'DOMAIN/USER'. Action ended 18:32:04: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (F4:C0) [18:32:04:396]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (F4:C0) [18:32:04:396]: Note: 1: 2205 2: 3: ActionText Action start 18:32:04: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (F4:C0) [18:32:04:397]: PROPERTY CHANGE: Modifying ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Its new value: 'PASSWORD'. Action ended 18:32:04: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 6:27 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id=ServiceUser Value=administrator/ Property Id=ServicePassword Value=password / CustomAction Id='SetServiceUser' Property='ServiceUser' Value='[SERVICEUSER]' / CustomAction Id='SetServicePassword' Property='ServicePassword' Value='[SERVICEPASSWORD]' / InstallExecuteSequence Custom Action='SetServiceUser' After='LaunchConditions'/Custom Custom Action='SetServicePassword' After='LaunchConditions'/Custom /InstallExecuteSequence /Module /Wix I have tried it with and without the custom action and additional properties. I just cannot seem to figure out how to get the information passed into the merge module; all of the googling I did indicated that others had tried, but I was not able to find any further hints than what I have included within this request for help. I did see that Rob had answered a similiar problem quite sometime ago but I did not understand his reply about using .Module/@Property, and have not been able to find any sort of information as to how that would work either. The Product Module looks like this: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Product Id=GUID3 Name= Language=1033 Version=1.4.3.0 UpgradeCode=GUID4 Manufacturer= Package Id=* InstallerVersion=200 Compressed=yes Keywords= Description= / Media Id=1 Cabinet=WindowsService.cab EmbedCab=yes DiskPrompt= Installation Media/ Directory Id='TARGETDIR' Name='SourceDir' Directory Id='ProgramFilesFolder
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
As Christopher said: Property Id=SERVICEUSER SuppressModularization=yes / Property Id=SERVICEPASSWORD SuppressModularization=yes / -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 4:42 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Slight Mis-post In the MergeModule, I have Property Id=SERVICEUSER Value=DOMAIN/USER/ Property Id=SERVICEPASSWORD Value=PASSWORD / When I look at the log, I can see that my custom actions inside the merge module are working, however, the data is never received from the Product Module (Here is the snippet of the log)... MSI (s) (F4:C0) [18:32:04:396]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (F4:C0) [18:32:04:396]: Note: 1: 2205 2: 3: ActionText Action start 18:32:04: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (F4:C0) [18:32:04:396]: PROPERTY CHANGE: Modifying ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Its new value: 'DOMAIN/USER'. Action ended 18:32:04: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (F4:C0) [18:32:04:396]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (F4:C0) [18:32:04:396]: Note: 1: 2205 2: 3: ActionText Action start 18:32:04: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (F4:C0) [18:32:04:397]: PROPERTY CHANGE: Modifying ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Its new value: 'PASSWORD'. Action ended 18:32:04: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 6:27 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id=ServiceUser Value=administrator/ Property Id=ServicePassword Value=password / CustomAction Id='SetServiceUser' Property='ServiceUser' Value='[SERVICEUSER]' / CustomAction Id='SetServicePassword' Property='ServicePassword' Value='[SERVICEPASSWORD]' / InstallExecuteSequence Custom Action='SetServiceUser' After='LaunchConditions'/Custom Custom Action='SetServicePassword' After='LaunchConditions'/Custom /InstallExecuteSequence /Module /Wix I have tried it with and without the custom action and additional properties. I just cannot seem to figure out how to get the information passed into the merge module; all of the googling I did indicated that others had tried, but I was not able to find any further hints than what I have included within this request for help. I did see that Rob had answered a similiar problem quite sometime ago but I did not understand his reply about using .Module/@Property, and have not been able to find any sort of information as to how that would work either. The Product Module looks like this: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id=ServiceUser Value=administrator/ Property Id=ServicePassword Value=password / CustomAction Id='SetServiceUser' Property='ServiceUser' Value='[SERVICEUSER]' / CustomAction Id='SetServicePassword' Property='ServicePassword' Value='[SERVICEPASSWORD]' / InstallExecuteSequence Custom Action='SetServiceUser' After='LaunchConditions
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Try the Configuration element under Module, and use the ConfigurationData element under Merge to hook it up. -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 5:17 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive=no ServiceDependency Id=Eventlog / util:ServiceConfig FirstFailureActionType=restart SecondFailureActionType=restart ThirdFailureActionType=restart/ /ServiceInstall /Component /Directory /Directory Property Id=SERVICEUSER Value=/ Property Id=SERVICEPASSWORD Value= / Property Id
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
You probably also need the Substitution element (to hook the Configuration values into the Property table entries from your module). See the following pages on MSDN: http://msdn.microsoft.com/library/aa368027.aspx http://msdn.microsoft.com/library/aa370045.aspx http://msdn.microsoft.com/library/aa370052.aspx -Original Message- From: Blair [mailto:os...@live.com] Sent: Tuesday, July 20, 2010 5:33 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Try the Configuration element under Module, and use the ConfigurationData element under Merge to hook it up. -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 5:17 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Do you redistribute your merge modules or are they only used inside your organization to assist in distributed development? If the answer is the latter, you can safely ignore this message. I've been doing so for 5 years with no down sides. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 7:16:43 PM Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id='component_WindowsService' Guid=GUID1 DiskId='1' !-- Install the service -- ServiceInstall Id='ServiceInstaller' Type='ownProcess' Vital=yes Name=XPedientServiceHost DisplayName=XPedient Services Host Description=XPedient Services Host Start=auto Account=[ServiceUser] Password=[ServicePassword] ErrorControl=normal Interactive
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Currently it is internally used, but I expect that this particular merge module will be used by the client to customize their install as well. -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 9:22 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Do you redistribute your merge modules or are they only used inside your organization to assist in distributed development? If the answer is the latter, you can safely ignore this message. I've been doing so for 5 years with no down sides. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 7:16:43 PM Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; xmlns:util=http://schemas.microsoft.com/wix/UtilExtension; Module Id=MM.WindowService Language=1033 Version=1.0.0.0 Package Id=GUID2 InstallerVersion=200 Manufacturer= / Directory Id=TARGETDIR Name=SourceDir Directory Id=MergeRedirectFolder Component Id
Re: [WiX-users] Passing Values from the ProductModule to a MergeModule
Sorry to be a bit dense, where/how would the markup look for the substitution element? I get it goes with the Module, (I assume the merge module), but I to get what the values would be in my case. After I have it working, I'll post again so that others can see how this ended up -Original Message- From: Blair [mailto:os...@live.com] Sent: Tuesday, July 20, 2010 8:04 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule You probably also need the Substitution element (to hook the Configuration values into the Property table entries from your module). See the following pages on MSDN: http://msdn.microsoft.com/library/aa368027.aspx http://msdn.microsoft.com/library/aa370045.aspx http://msdn.microsoft.com/library/aa370052.aspx -Original Message- From: Blair [mailto:os...@live.com] Sent: Tuesday, July 20, 2010 5:33 PM To: 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Try the Configuration element under Module, and use the ConfigurationData element under Merge to hook it up. -Original Message- From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] Sent: Tuesday, July 20, 2010 5:17 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule The warning is comforting :-()... Warning 6 The Property/@SuppressModularization attribute has been set to 'yes'. Using this functionality is strongly discouraged; it should only be necessary as a workaround of last resort in rare scenarios. So I updated the MergeModule as follows: Property Id=SERVICEUSER SuppressModularization=yes/ Property Id=SERVICEPASSWORD SuppressModularization=yes/ But I am still not receiving the values, here is the relevant part of the log... any other ideas? MSI (s) (84:AC) [19:14:54:752]: Doing action: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:752]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'administrator'. Action ended 19:14:54: SetServiceUser.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText Action start 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. MSI (s) (84:AC) [19:14:54:753]: PROPERTY CHANGE: Deleting ServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F property. Its current value is 'password'. Action ended 19:14:54: SetServicePassword.06C528FC_89E0_48C7_B32F_50DEAF36899F. Return value 1. MSI (s) (84:AC) [19:14:54:753]: Doing action: SetAppDBDatabase MSI (s) (84:AC) [19:14:54:753]: Note: 1: 2205 2: 3: ActionText -Original Message- From: Christopher Painter [mailto:chr...@deploymentengineering.com] Sent: Tuesday, July 20, 2010 6:34 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Passing Values from the ProductModule to a MergeModule Modules don't exist in an installer. Their components are merged and associated to features and then they go away. That said, you need to define the property elements for ServiceUser and so on in the merge module with no default value and SuppressModularization attribute set to yes. The rows won't get created in the Property table and no property table will likely get created ( unless you define other properties with values ) but the compiler will now understand to not molest your properties with GUIDs. Christopher Painter, Author of Deployment Engineering Blog Have a hot tip, know a secret or read a really good thread that deserves attention? E-Mail Me - Original Message From: John Bergman john.berg...@xpedienttechnologies.com To: General discussion for Windows Installer XML toolset. wix-users@lists.sourceforge.net Sent: Tue, July 20, 2010 6:26:55 PM Subject: [WiX-users] Passing Values from the ProductModule to a MergeModule This post is a little long, but hopefully it provides enough information to provide some insight into what the problem is that I am having, and when a solution or directions are provided, it will provide enough context to help others who may have the same requirement later. I have been struggling with this for more than a day now. I need to pass some of the parameters received on the command line of the installer to a MergeModule (all in Wix). It is a Merge Module because it will be provided to a customer to embed in their installers as well. Basically The Merge Module consists of a service, as follows (Pruned): ?xml version=1.0 encoding=UTF-8