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=""[SystemFolder]regsvr32.exe" /s " [Bin]\MathParser.dll""/> <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