Hey David, You will need to create an intermediate custom action ( http://msdn.microsoft.com/en-us/library/aa370543(VS.85).aspx) that sends the deferred custom action the values you need.
What you are looking to do, calling Regasm.exe, is not the preferred way of achieving the goal. You could use heat.exe in your environment to harvest the registry entries you need into your MSI or author the registry entries in the .wxs file. Then you would not need to gain access to the files and you wouldn't have to worry about the 3 needed steps (install/rollback/uninstall). Hope that helps, Brian Rogers "Intelligence removes complexity." - Me http://icumove.spaces.live.com On Mon, Apr 20, 2009 at 2:27 PM, David Bartmess <david.bartm...@wallst.com>wrote: > I can't run them as deferred because when I try to mark them as deferred, > the compiler gives me an error about it. Seems the Property custom actions > can't be run as deferred, and they need to be run at the same time as the > other custom actions the QtExecCmdLine is used in. > > -----Original Message----- > From: Brian Rogers [mailto:rogers.br...@gmail.com] > Sent: Monday, April 20, 2009 2:33 PM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Files not being installed before custom action > being executed... > > Hey David, > > You would need to run these as "deferred" custom actions in order to have > access to system files. > > Thanks, > > Brian Rogers > "Intelligence removes complexity." - Me > http://icumove.spaces.live.com > > > On Mon, Apr 20, 2009 at 12:37 PM, David Bartmess > <david.bartm...@wallst.com>wrote: > > > What could be the problem with this? The scenario is that several > > scripts are copied in during InstallFiles, and executed just before > InstallFinalize. > > But when it executes, the files aren't copied to the output > > directories at the point where it tries to run them. > > > > How can I (or should I?) force the files to be installed at a specific > > point? I thought that was what "InstallFiles" was doing. But according > > to the log (bottom) InstallFiles is being executed, and the custom > > actions are coming MUCH later... So why aren't the files there? > > > > Any help would be appreciated... > > > > > > <InstallExecuteSequence> > > <StopServices Suppress="yes">1</StopServices> <StartServices > > Suppress="yes">1</StartServices> <DeleteServices > > Suppress="yes">1</DeleteServices> > > > > <Custom Action="GetOutlookVersion" > > After="FindRelatedProducts">1</Custom> > > <Custom Action="PreventDowngrading" After="FindRelatedProducts" > > >NEWPRODUCTFOUND</Custom> > > > > <RemoveExistingProducts > > After="InstallInitialize">1</RemoveExistingProducts> > > <InstallFiles>NOT REMOVE</InstallFiles> > > > > <Custom Action="RemoveCalendarForms" > > After="GetOutlookVersion">Installed > > AND REMOVE</Custom> > > <RemoveFiles>REMOVE</RemoveFiles> > > > > <Custom Action="InstallForms.Command" Before="InstallFinalize">(NOT > > Installed) AND (NOT REMOVE)</Custom> > > <Custom Action="QtInstallCalendarForms" > > After="InstallForms.Command">(NOT > > Installed) AND (NOT REMOVE)</Custom> > > <Custom Action="InstallDefault.Command" > > After="QtInstallCalendarForms">(NOT > > Installed) AND (NOT REMOVE)</Custom> > > <Custom Action="QtInstallCalendarDefault" > > After="InstallDefault.Command">(NOT Installed) AND (NOT > > REMOVE)</Custom> <Custom Action="OutlookAddin.Command" After > > ="QtInstallCalendarDefault">(NOT Installed) AND (NOT REMOVE)</Custom> > > <Custom Action="QtRegisterOutlookAddin.dll" > > After="OutlookAddin.Command">(NOT Installed) AND (NOT REMOVE)</Custom> > > <Custom Action="Interop.Redemption.Command" After > > ="QtRegisterOutlookAddin.dll">(NOT Installed) AND (NOT > > REMOVE)</Custom> <Custom Action="QtRegisterInterop.Redemption" > > After="Interop.Redemption.Command">(NOT Installed) AND (NOT > > REMOVE)</Custom> </InstallExecuteSequence> > > > > <CustomAction Id="InstallForms.Command" > > Property="QtExecCmdLine" > > Value='"[SystemFolder]cscript.exe" /nologo > > "[TOOLS]InstallForms.vbs" "[FORMS]"' > > Execute='immediate'/> > > <CustomAction Id="QtInstallCalendarForms" > > Return="check" > > Impersonate="yes" > > Execute="immediate" > > BinaryKey="wixca" > > DllEntry="CAQuietExec"/> > > <CustomAction Id="InstallDefault.Command" > > Property="QtExecCmdLine" > > Value='"[SystemFolder]cscript.exe" /nologo > > "[TOOLS]InstallDefault.vbs" "IPM.Appointment.Maestro.Appointment" > > "Maestro.Appointment"' > > Execute='immediate'/> > > <CustomAction Id="QtInstallCalendarDefault" > > Return="check" > > Impersonate="yes" > > Execute="immediate" > > BinaryKey="wixca" > > DllEntry="CAQuietExec"/> > > > > <CustomAction Id="Interop.Redemption.Command" > > Property="QtExecCmdLine" > > > > Value='"[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\regasm.exe" > > /codebase /silent "[OUTLOOKADDIN]Interop.Redemption.dll"' > > Execute='immediate'/> > > <CustomAction Id="QtRegisterInterop.Redemption" > > Return="check" > > Impersonate="yes" > > Execute="immediate" > > BinaryKey="wixca" > > DllEntry="CAQuietExec"/> > > <CustomAction Id="OutlookAddin.Command" > > Property="QtExecCmdLine" > > > > Value='"[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\regasm.exe" > > /codebase /silent "[OUTLOOKADDIN]MaestroLinkAddin.dll"' > > Execute='immediate'/> > > <CustomAction Id="QtRegisterOutlookAddin.dll" > > Return="check" > > Impersonate="yes" > > Execute="immediate" > > BinaryKey="wixca" > > DllEntry="CAQuietExec"/> > > > > MSI (s) (A4:C4) [13:24:09:273]: Doing action: InstallFiles MSI (s) > > (A4:C4) [13:24:09:273]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: InstallFiles. Copying new files Action start 13:24:09: > > InstallFiles. > > InstallFiles: File: Copying new files, Directory: , Size: > > MSI (s) (A4:C4) [13:24:09:273]: Note: 1: 2205 2: 3: Patch MSI (s) > > (A4:C4) [13:24:09:273]: Note: 1: 2228 2: 3: Patch 4: SELECT > > `Patch`.`File_`, `Patch`.`Header`, `Patch`.`Attributes`, > > `Patch`.`Sequence`, `Patch`.`StreamRef_` FROM `Patch` WHERE > > `Patch`.`File_` = ? AND `Patch`.`#_MsiActive`=? ORDER BY > > `Patch`.`Sequence` MSI (s) (A4:C4) [13:24:09:273]: Note: 1: 2205 2: > > 3: MsiPatchHeaders MSI (s) (A4:C4) [13:24:09:273]: Note: 1: 2228 2: 3: > MsiPatchHeaders 4: > > SELECT `Header` FROM `MsiPatchHeaders` WHERE `StreamRef` = ? > > MSI (s) (A4:C4) [13:24:09:273]: Note: 1: 2205 2: 3: PatchPackage > > Action ended 13:24:09: InstallFiles. Return value 1. > > MSI (s) (A4:C4) [13:24:09:289]: Doing action: CreateShortcuts MSI (s) > > (A4:C4) [13:24:09:289]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: CreateShortcuts. Creating shortcuts Action start 13:24:09: > > CreateShortcuts. > > CreateShortcuts: Shortcut: Creating shortcuts Action ended 13:24:09: > > CreateShortcuts. Return value 1. > > MSI (s) (A4:C4) [13:24:09:305]: Doing action: RegisterExtensionInfo > > MSI (s) (A4:C4) [13:24:09:305]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: RegisterExtensionInfo. Registering extension servers Action > > start 13:24:09: RegisterExtensionInfo. > > MSI (s) (A4:C4) [13:24:09:305]: Note: 1: 2262 2: Extension 3: > > -2147287038 Action ended 13:24:09: RegisterExtensionInfo. Return value 1. > > MSI (s) (A4:C4) [13:24:09:305]: Doing action: WriteRegistryValues MSI > > (s) (A4:C4) [13:24:09:305]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: WriteRegistryValues. Writing system registry values Action > > start 13:24:09: WriteRegistryValues. > > WriteRegistryValues: Key: Writing system registry values, Name: , Value: > > Action ended 13:24:09: WriteRegistryValues. Return value 1. > > MSI (s) (A4:C4) [13:24:09:367]: Doing action: SelfRegModules MSI (s) > > (A4:C4) [13:24:09:367]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: SelfRegModules. Registering modules Action start 13:24:09: > > SelfRegModules. > > SelfRegModules: File: Registering modules, Folder: > > Action ended 13:24:09: SelfRegModules. Return value 1. > > MSI (s) (A4:C4) [13:24:09:367]: Doing action: RegisterUser MSI (s) > > (A4:C4) [13:24:09:367]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: RegisterUser. Registering user Action start 13:24:09: > > RegisterUser. > > Action ended 13:24:09: RegisterUser. Return value 1. > > MSI (s) (A4:C4) [13:24:09:383]: Doing action: RegisterProduct MSI (s) > > (A4:C4) [13:24:09:383]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: RegisterProduct. Registering product Action start 13:24:09: > > RegisterProduct. > > RegisterProduct: Registering product > > MSI (s) (A4:C4) [13:24:09:383]: PROPERTY CHANGE: Adding > > ProductToBeRegistered property. Its value is '1'. > > Action ended 13:24:09: RegisterProduct. Return value 1. > > MSI (s) (A4:C4) [13:24:09:383]: Doing action: MsiPublishAssemblies MSI > > (s) (A4:C4) [13:24:09:383]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: MsiPublishAssemblies. Publishing assembly information Action > > start 13:24:09: MsiPublishAssemblies. > > Action ended 13:24:09: MsiPublishAssemblies. Return value 1. > > MSI (s) (A4:C4) [13:24:09:383]: Doing action: PublishFeatures MSI (s) > > (A4:C4) [13:24:09:383]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: PublishFeatures. Publishing Product Features Action start > > 13:24:09: PublishFeatures. > > PublishFeatures: Feature: Publishing Product Features Action ended > > 13:24:09: PublishFeatures. Return value 1. > > MSI (s) (A4:C4) [13:24:09:383]: Doing action: PublishProduct MSI (s) > > (A4:C4) [13:24:09:383]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: PublishProduct. Publishing product information Action start > > 13:24:09: PublishProduct. > > PublishProduct: > > Action ended 13:24:09: PublishProduct. Return value 1. > > MSI (s) (A4:C4) [13:24:09:398]: Doing action: InstallForms.Command MSI > > (s) (A4:C4) [13:24:09:398]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: InstallForms.Command. > > Action start 13:24:09: InstallForms.Command. > > MSI (s) (A4:C4) [13:24:09:398]: PROPERTY CHANGE: Adding QtExecCmdLine > > property. Its value is '"C:\WINDOWS\system32\cscript.exe" /nologo > > "C:\Program Files\<PRODUCT>\Tool\InstallForms.vbs" "C:\Program > > Files\<PRODUCT>\Form\"'. > > Action ended 13:24:09: InstallForms.Command. Return value 1. > > MSI (s) (A4:C4) [13:24:09:398]: Doing action: QtInstallCalendarForms > > MSI (s) (A4:C4) [13:24:09:398]: Note: 1: 2205 2: 3: ActionText Action > > 13:24:09: QtInstallCalendarForms. > > Action start 13:24:09: QtInstallCalendarForms. > > MSI (s) (A4:20) [13:24:09:414]: Invoking remote custom action. DLL: > > C:\WINDOWS\Installer\MSI2DD6.tmp, Entrypoint: CAQuietExec MSI (s) > > (A4!20) [13:24:09:430]: PROPERTY CHANGE: Deleting QtExecCmdLine > > property. Its current value is '"C:\WINDOWS\system32\cscript.exe" > > /nologo "C:\Program Files\<PRODUCT>\Tool\InstallForms.vbs" "C:\Program > > Files\PRODUCT\Form\"'. > > CAQuietExec: Input Error: Can not find script file "C:\Program > > Files\<PRODUCT>\Tool\InstallForms.vbs". > > CAQuietExec: Error 0x80070001: Command line returned an error. > > CAQuietExec: Error 0x80070001: CAQuietExec Failed Action ended > > 13:24:09: QtInstallCalendarForms. Return value 3. > > > > > > ---------------------------------------------------------------------- > > -------- Stay on top of everything new and different, both inside and > > around Java (TM) technology - register by April 22, and save $200 on > > the JavaOne (SM) conference, June 2-5, 2009, San Francisco. > > 300 plus technical and hands-on sessions. Register today. > > Use priority code J9JMT32. http://p.sf.net/sfu/p > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > ------------------------------------------------------------------------------ > Stay on top of everything new and different, both inside and around Java > (TM) technology - register by April 22, and save $200 on the JavaOne (SM) > conference, June 2-5, 2009, San Francisco. > 300 plus technical and hands-on sessions. Register today. > Use priority code J9JMT32. > http://p.sf.net/sfu/p_______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------------------------------------------------------ > Stay on top of everything new and different, both inside and > around Java (TM) technology - register by April 22, and save > $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. > 300 plus technical and hands-on sessions. Register today. > Use priority code J9JMT32. http://p.sf.net/sfu/p > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users