Re: [WiX-users] custom actions after reboot
Thanks, I'll take a look at bootstrapping. http://msdn.microsoft.com/en-us/library/aa367553.aspx gave me the impression that after the forecereboot, the installer would be relaunched and I could then perform the queue set up, hence trying to perform the MSMQ stuff before installing any files. -Original Message- From: David Watson [mailto:dwat...@sdl.com] Sent: 09 March 2011 17:20 To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] custom actions after reboot 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
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
Re: [WiX-users] custom actions after reboot
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