Put a launch condition in that cancels your installation if msmq is not installed.
If you really need to install msmq for your user use a bootstrapper that installs it before your msi is called. -----Original Message----- From: Matthew Slane [mailto:matthew.sl...@thetrainline.com] Sent: 09 March 2011 16:58 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] custom actions after reboot Hi, I'm getting a bit frustrated with constantly rebooting to try and get this working. If MSMQ is installed the queue gets created. If MSMQ isn't installed, it gets installed and throws the following message before forcing the reboot: "The installer has encountered an unexpected error installing this package. This may indicate a problem with the package. The Error code is 28101." I'm using an wsx file based on the tutorial at www.tramontana.co.hu/wix/lesson1.php I need to force the reboot and then install the msmqueues component if MSMQ gets installed. <?xml version='1.0' encoding='windows-1252'?> <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:pca="http://schemas.microsoft.com/wix/MsmqExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Product Name='Foobar 1.0' Id='{D657286E-E865-43e3-B6F3-F37A0AC032BB}' UpgradeCode='{F4FD13DB-B92B-4e4d-A6F6-35DFCA877DC2}' Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> <Package Id='*' Keywords='Installer' Description="Acme's Foobar 1.0 Installer" Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> <Media Id='1' Cabinet='App.cab' EmbedCab='yes' /> <util:User Domain='.' Name='Administrator' Id='myuser'/> <Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='ProgramFilesFolder' Name='PFiles'> <Directory Id='INSTALLDIR' Name='Acme'> <Component Id='doc1' Guid='{18E8D982-4958-492b-AAAC-CD9AABF4E0B9}'> <File Id='d1' Name='1stdoc.txt' DiskId='1' Source='1stdoc.txt' KeyPath='yes'/> </Component> <Component Id='msmqueues' Guid='{95B2735A-6014-4e16-AD23-70F1BF6A844E}' KeyPath='yes'> <pca:MessageQueue Id='testqueue' Label='testqueue' Transactional='yes' PathName='.\Private$\testqueue'> <pca:MessageQueuePermission Id='distqueupermission' ReceiveMessage='yes' User='myuser'/> </pca:MessageQueue> </Component> </Directory> </Directory> </Directory> <Property Id="msmqcontainer" Value='"dism.exe" /online /Enable-Feature /FeatureName:MSMQ-Container /norestart'/> <Property Id="msmqserver" Value='"dism.exe" /online /Enable-Feature /FeatureName:MSMQ-Server /norestart'/> <Property Id="msmqmulticast" Value='"dism.exe" /online /Enable-Feature /FeatureName:MSMQ-Multicast /norestart'/> <CustomAction Id="msmqcontainer" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return='check' /> <CustomAction Id="msmqserver" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute='deferred' Return='check'/> <CustomAction Id="msmqmulticast" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute='deferred' Return='check'/> <Feature Id='Complete' Level='1'> <Feature Id='one' Level='1'> <ComponentRef Id='doc1'/> </Feature> <Feature Id='MSMQqueues' Level='1'> <ComponentRef Id='msmqueues'></ComponentRef> <Condition Level='0'>NOT MSMQAVAILABLE</Condition> </Feature> </Feature> <Property Id='MSMQAVAILABLE'> <RegistrySearch Id="MSMQIsInstalled" Root="HKLM" Key="System\CurrentControlSet\Services\MSMQ" Name="ImagePath" Type="raw" /> </Property> <InstallExecuteSequence> <Custom Action="msmqcontainer" After="InstallFiles" >NOT MSMQAVAILABLE</Custom> <Custom Action="msmqserver" After="msmqcontainer" >NOT MSMQAVAILABLE</Custom> <Custom Action="msmqmulticast" After="msmqserver" >NOT MSMQAVAILABLE</Custom> <ForceReboot After='msmqmulticast'> NOT MSMQAVAILABLE </ForceReboot> </InstallExecuteSequence> </Product> </Wix> -----Original Message----- From: Matthew Slane [mailto:matthew.sl...@thetrainline.com] Sent: 04 March 2011 10:22 To: wix-users@lists.sourceforge.net Subject: [WiX-users] custom actions after reboot Hi, I've got a property that checks whether MSMQ is available and custom actions to install it if it isn't. I've also got MsmqExtension working to create queues. I haven't got them working together. The installer works nicely if MSMQ is already installed, otherwise it installs the program but throws 28101 error messages and the queues arent' created. Looking at the logs this appears to be caused by failing to load mqrt.dll. I suspect this is because the machine needs rebooting after installing MSMQ. How would I go about creating the queues post-reboot if MSMQ is installed when running the msi? I could do it on start up in the programs that are installed, but I'm meant to be in feature freeze until after first release, plus I'm curious. Thanks Matt. The information in this email (and any attachments) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. If you received this email in error please tell us by reply email (or telephone the sender) and delete all electronic copies on your system or other copies known to you. Trainline Investments Holdings Limited (Registered No.5776685), Trainline.com Limited (Registered No. 3846791) and Trainline Scotland Limited (Registered No. 6881309) are all registered in England and Wales with registered office at The Matrix, 9 Aldgate High Street, London, EC3N 1AH. ------------------------------------------------------------------------ ------ What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users The information in this email (and any attachments) is confidential and is intended solely for the use of the individual or entity to whom it is addressed. If you received this email in error please tell us by reply email (or telephone the sender) and delete all electronic copies on your system or other copies known to you. Trainline Investments Holdings Limited (Registered No.5776685), Trainline.com Limited (Registered No. 3846791) and Trainline Scotland Limited (Registered No. 6881309) are all registered in England and Wales with registered office at The Matrix, 9 Aldgate High Street, London, EC3N 1AH. ----------------------------------------------------------------------------- - Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users SDL PLC confidential, all rights reserved. If you are not the intended recipient of this mail SDL requests and requires that you delete it without acting upon or copying any of its contents, and we further request that you advise us. SDL PLC is a public limited company registered in England and Wales. Registered number: 02675207. Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6 7DY, UK. ------------------------------------------------------------------------------ Colocation vs. Managed Hosting A question and answer guide to determining the best fit for your organization - today and in the future. http://p.sf.net/sfu/internap-sfd2d _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users