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

Reply via email to