Tallow is a v2 tool which is (supposed to be) replaced by heat in v3. However the functionality you're trying to use isn't available by heat so you have to do some extra work to get valid WiX v3 code generated. There is a tool called WiXCop.exe which is used to transform v2 code into v3 code. If you use it on your bar.wxs file it should convert your code to v3.
Heat should harvest your DLLs completely fine though. If you run it on the directory containing the DLL's it should output a Fragment for you which you can use as you wish. Ideally heat would be able to harvest COM executables which have a /regserver command in the same way it harvests DLLs which have a DLLRegisterServer entry point but until someone writes the functionality we'll be stuck using RegSpy2 -> tallow -> WiXCop. Palbinder Sandher Software Deployment Engineer 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: Kapoor, Anupama [mailto:[EMAIL PROTECTED] Sent: 18 November 2008 19:59 To: General discussion for Windows Installer XML toolset.; Rob Mensching Subject: Re: [WiX-users] invoking batch file inside wxs file First because, I am beginner with WIX. But I did try going that way. I have about 50-60 COM DLL and one EXE. So, this is what I have done so far: 1. Use RegSpy2 tool to gather registry information from the COM, and then saved it in foo.reg file. 2. Passed foo.reg file through tallow to get bar.wxs file. I used these registry info from this file in my Product.wxs file. This didnt seem to work at all. I dont know what is going on, so I decided to invoke "batch file" till I figure out how to go about extracting registry information. This is sample of what I did for registering an Exe <Registry Root="HKCR" Key="AppID" Id="REPLACEME.ComReg0" /> <Registry Root="HKCR" Key="AppID\foo.exe" Name="AppID" Value="{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}" Type="string" Id="REPLACEME.ComReg1" /> <Registry Root="HKCR" Key="AppID\{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}" Value="bar" Type="string" Id="REPLACEME.ComReg2" /> <Registry Root="HKCR" Key="CLSID" Id="REPLACEME.ComReg3" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Value="FooManager Class" Type="string" Id="REPLACEME.ComReg4" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Name="AppID" Value="{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}" Type="string" Id="REPLACEME.ComReg5" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\LocalServer32" Value=""[INSTALLDIR]"" Type="string" Id="REPLACEME.ComReg6" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\ProgID" Value="bar.1" Type="string" Id="REPLACEME.ComReg7" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\Programmable" Id="REPLACEME.ComReg8" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\TypeLib" Value="{15CE8CF5-A7C2-4E31-9D37-8734E4330A98}" Type="string" Id="REPLACEME.ComReg9" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\VersionIndependentProgID" Value="bar" Type="string" Id="REPLACEME.ComReg10" /> <Registry Root="HKCR" Key="bar" Value="FooManager Class" Type="string" Id="REPLACEME.ComReg11" /> <Registry Root="HKCR" Key="bar\CLSID" Value="{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Type="string" Id="REPLACEME.ComReg12" /> <Registry Root="HKCR" Key="bar\CurVer" Value="bar.1" Type="string" Id="REPLACEME.ComReg13" /> <Registry Root="HKCR" Key="bar.1" Value="FooManager Class" Type="string" Id="REPLACEME.ComReg14" /> <Registry Root="HKCR" Key="bar.1\CLSID" Value="{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Type="string" Id="REPLACEME.ComReg15" /> <Registry Root="HKCR" Key="AppID" Id="REPLACEME.ComReg0" /> <Registry Root="HKCR" Key="AppID\foo.exe" > <Registry Name="AppID" Value="{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}" Type="string" Id="REPLACEME.ComReg1" /> </Registry> <Registry Root="HKCR" Key="AppID\{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}"> <Registry Value="bar" Type="string" Id="REPLACEME.ComReg2"/> </Registry> <Registry Root="HKCR" Key="CLSID" Id="REPLACEME.ComReg3"/> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}"> <Registry Value="FooManager Class" Type="string" Id="REPLACEME.ComReg4"/> <Registry Name="AppID" Value="{2B7FED60-22A9-408B-B0C1-3232EFBDDCE0}" Type="string" Id="REPLACEME.ComReg5"/> </Registry> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\LocalServer32"> <Registry Value=""D:\src\foo.exe"" Type="string" Id="REPLACEME.ComReg6" /> </Registry> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\ProgID"> <Registry Value="bar.1" Type="string" Id="REPLACEME.ComReg7"/> </Registry> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\Programmable" Id="REPLACEME.ComReg8" /> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\TypeLib"> <Registry Value="{15CE8CF5-A7C2-4E31-9D37-8734E4330A98}" Type="string" Id="REPLACEME.ComReg9"/> </Registry> <Registry Root="HKCR" Key="CLSID\{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}\VersionIndependentProgID"> <Registry Value="bar" Type="string" Id="REPLACEME.ComReg10" /> </Registry> <Registry Root="HKCR" Key="bar"> <Registry Value="FooManager Class" Type="string" Id="REPLACEME.ComReg11"/> </Registry> <Registry Root="HKCR" Key="bar\CLSID"> <Registry Value="{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Type="string" Id="REPLACEME.ComReg12"/> </Registry> <Registry Root="HKCR" Key="bar\CurVer"> <Registry Value="bar.1" Type="string" Id="REPLACEME.ComReg13"/> </Registry> <Registry Root="HKCR" Key="bar.1"> <Registry Value="FooManager Class" Type="string" Id="REPLACEME.ComReg14"/> </Registry> <Registry Root="HKCR" Key="bar.1\CLSID"> <Registry Value="{5A6C1627-EC3E-454F-9E27-D9CDFF5FA722}" Type="string" Id="REPLACEME.ComReg15"/> </Registry> Thanks, Anu --- On Tue, 11/18/08, Rob Mensching <[EMAIL PROTECTED]> wrote: From: Rob Mensching <[EMAIL PROTECTED]> Subject: RE: [WiX-users] invoking batch file inside wxs file To: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>, "General discussion for Windows Installer XML toolset." <wix-users@lists.sourceforge.net> Date: Tuesday, November 18, 2008, 12:39 PM Uhh, why don't you just author the registry keys in the .wxs file? A batch file won't rollback correctly. -----Original Message----- From: Kapoor, Anupama [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 18, 2008 10:38 To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] invoking batch file inside wxs file Hi Jim, I have already tried "deferred" but even that seems to fail. This batch file basically tries to register the COM components on the target machine. So, I want the batch file to run after the installer script has run, i.e after creating the installer, this script has to run to register the components. May be what I am trying to do, is not even possible. Please suggest. Thanks, Anu --- On Tue, 11/18/08, Jim Williams <[EMAIL PROTECTED]> wrote: From: Jim Williams <[EMAIL PROTECTED]> Subject: RE: [WiX-users] invoking batch file inside wxs file To: [EMAIL PROTECTED], "General discussion for Windows Installer XML toolset." <wix-users@lists.sourceforge.net> Date: Tuesday, November 18, 2008, 11:10 AM You might want to try deferred execution instead of immediate. This will run the custom action after InstallFinalize when the install script is run. Immediate causes it to be run when it is encountered when creating the installation script. <CustomAction Id='InvokeRegister' Property='CommandProcessorPath' ExeCommand='"[InstallDir]\Register.bat" "[InstallDir]\Drivers" Release x64' Execute='deferred' Impersonate='no' Return='check' /> Jim Williams -----Original Message----- From: Kapoor, Anupama [mailto:[EMAIL PROTECTED] Sent: Tuesday, November 18, 2008 8:42 AM To: wix-users@lists.sourceforge.net Subject: [WiX-users] invoking batch file inside wxs file Hi, I am trying to invoke a batch file from my foo.wxs, which I want it to "run" after my installer has been installed. So, I am doing something like this: <Property Id='CommandProcessorPath' Value='[SystemFolder]/cmd.exe/v:off /c' /> <CustomAction Id='InvokeRegister' Property='CommandProcessorPath' ExeCommand='"[InstallDir]\Register.bat" "[InstallDir]\Drivers" Release x64' Execute='immediate' Impersonate='no' Return='check' /> <InstallExecuteSequence> <Custom Action='InvokeRegister' After='InstallFinalize' /> </InstallExecuteSequence> I am running into issues with this. Can you please let me know what is incorrect here? Thanks much, Anu ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users