http://wix.sourceforge.net/manual-wix3/heat.htm 

Palbinder Sandher 
Software Deployment & IT Administrator
T: +44 (0) 141 945 8500 
F: +44 (0) 141 945 8501 

http://www.iesve.com 
**Design, Simulate + Innovate with the <Virtual Environment>**
Integrated Environmental Solutions Limited. Registered in Scotland No.
SC151456 
Registered Office - Helix Building, West Of Scotland Science Park,
Glasgow G20 0SP
Email Disclaimer

-----Original Message-----
From: stefan.zippr...@rohde-schwarz.com
[mailto:stefan.zippr...@rohde-schwarz.com] 
Sent: 14 January 2011 17:46
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] registration of COM DLLs

Hi,

I have a problem to register a COM DLL via WiX 3.0. This COM DLL is
dependent on a certain Merge Module that is also installed. From Vista
on, SelfRegCost cannot be used in this case, because it will be called
not until the Merge Modules are installed and COM registration will fail
(we are installing on Windows 7). So we do it via a custom action. As
the Merge Modules are installed during InstallFinalize, we run the
CustomAction after InstallFinalize (via an entry in
InstallExecuteSequence ).

  <Fragment>
    <!-- Install and register MathParser.dll. From Windows Vista on this
cannot be done with
         flag SelfRegCost any more, because the Windows Installer
changed so that Merge Modules
         are not installed until InstallFinalize. -->
    <CustomAction Id="SetCmdLine_RegisterMathParser"
                  Property="QtExecCmdLine"
                  Value="&quot;[SystemFolder]regsvr32.exe&quot; /s
&quot; [Bin]\MathParser.dll&quot;"/>
    <CustomAction Id="RegisterMathParser"
                  BinaryKey="WixCA"
                  DllEntry="CAQuietExec"/>
 
    <DirectoryRef Id="Bin" FileSource="..\App\RunTime\Release">
      <Component Id="BinMathParser" Guid="
5E00F62F-9BE3-470c-843B-91A85E02DD20">
        <File Name="MathParser.dll" />
      </Component>
    </DirectoryRef>
  </Fragment>

But this works only when being logged in as an administrator under
Windows 7. As a restricted user, the installer asks for the
administrator password, however starts custom actions as a restricted
user. To start the custom action with elevated privileges it is
necessary to add:

                  Impersonate="no"
                  Execute="deferred"

But this makes it impossible to start the custom action after the Merge
Modules are installed (error ICE77). So how can we register a COM DLL
which is dependent on prior installation of a Merge Module? It seems to
be impossible to change the point of time when the Merge Modules are
installed by modifying the InstallExecuteSequence.

Thank you!

Kind regards,
Stefan
------------------------------------------------------------------------
------
Protect Your Site and Customers from Malware Attacks Learn about various
malware tactics and how to avoid them. Understand malware threats, the
impact they can have on your business, and how you can protect your
company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to