Nevertheless, that "immediate" custom action is incorrect. I'll just repeat
that immediate custom actions cannot run installed files because no files
have yet been installed! This is a logical error in your install, and that
custom action action is working only because sometimes the installutil.exe
file is still there. 

Phil 

-----Original Message-----
From: tyler.w.r...@accenture.com [mailto:tyler.w.r...@accenture.com] 
Sent: Wednesday, June 05, 2013 6:57 AM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Running a repair after install automatically

Hello,



        I know I need to schedule the REP early that is what I want to do,
but due to some bad decisions by my predecessor I was unable to do that
because the REP would fail because of the custom action. I have however
managed to find a fix and get my REP scheduled early. To fix this issue I
had to set IgnoreRemoveFailure="yes" on the UpgradeVersion element. Now I
have my REP early and I will fix the custom actions to avoid this problem in
future versions. Thank you all for your help.





Date: Tue, 4 Jun 2013 11:20:22 -0700

From: "Phil Wilson" <phil.wil...@mvps.org<mailto:phil.wil...@mvps.org>>

Subject: Re: [WiX-users] Running a repair after install automatically

To: "'General discussion for Windows Installer XML toolset.'"

 
<wix-users@lists.sourceforge.net<mailto:wix-users@lists.sourceforge.net>>

Message-ID:

 
<sig.18678a29c2.sig.98677793d3.6188F422DA5C4B3CAD2D4C3C2A46DB54@PhilPC>



Content-Type: text/plain; charset="us-ascii"



If you're restructuring the components and guids then you must run your REP
early to uninstall the old product before installing the new one, such as
after InstallValidate.



Your issue may be that your custom action is immediate because that means
"before any files have been installed. I suspect your custom action works
when you sequence REP towards the end because the old files are still on the
system and your quiet exec runs the old InstallUtil.exe that hasn't yet been
removed.



Phil



-----Original Message-----

From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com]

Sent: Tuesday, June 04, 2013 10:19 AM

To: General discussion for Windows Installer XML toolset.

Subject: Re: [WiX-users] Running a repair after install automatically



I'm confused about: if I schedule the remove existing product early like our
other installer then during that action the install fails as the dll is gone
when the custom action to InstallUtil.dll gets called.  If you schedule it
afterInstallValidate or afterInstallInitialize, the old product is removed
before the new one is installed.  If you did it afterInstallExecute, I could
see the behavior you are describing.



>From the help file:

afterInstallValidate - (Default) Schedules RemoveExistingProducts after the
InstallValidate standard action. This scheduling removes the installed
product entirely before installing the upgrade product. It's slowest but
gives the most flexibility in changing components and features in the
upgrade product. Note that if the installation of the upgrade product fails,
the machine will have neither version installed.



afterInstallInitialize - Schedules RemoveExistingProducts after the
InstallInitialize standard action. This is similar to the
afterInstallValidate scheduling, but if the installation of the upgrade
product fails, Windows Installer also rolls back the removal of the
installed product -- in other words, reinstalls it.



-----Original Message-----

From: tyler.w.r...@accenture.com<mailto:tyler.w.r...@accenture.com>
[mailto:tyler.w.r...@accenture.com]

Sent: Tuesday, June 04, 2013 11:50 AM

To: wix-users@lists.sourceforge.net<mailto:wix-users@lists.sourceforge.net>

Subject: [WiX-users] Running a repair after install automatically



Hello,



        I have a problem with an older install that we have restructured to
conform to the single file per component rules. However inside of this
installer is some custom actions that call the InstallUtil.exe to install
some performance counters that we have in a dll that gets installed. The
problem we have comes when we do a major upgrade if I schedule the remove
existing product early like our other installer then during that action the
install fails as the dll is gone when the custom action to InstallUtil.dll
gets called. So I left the RemoveExisting action before InstallFinalize and
put the old Guid from the previous version back on that Dll and that gets me
through the install, but a lot of the components that had multiple files are
now in single components and get removed when the RemoveExisting action
runs. So basically I am left with a completed install and most of the files
have been removed.  If I manually run a repair that fixes it, but I was
wondering if there was any other way I could fix this and at the very least
is there any way to automatically run the repair so our customers don't have
to do it manually? I have pasted the relevant code for the performance
counter custom actions below.





    <Property Id="PerformanceCounterCustomActions" Value="1" />

    <!--We use netframework20 because installutil does not exist in the

.net35 installrootdir-->

    <!--TODO: make this handle .net40 and prefer 40-->

    <PropertyRef Id="NETFRAMEWORK20INSTALLROOTDIR"/>

    <PropertyRef Id="NETFRAMEWORK40FULLINSTALLROOTDIR"/>

    <Property Id="INSTALLUTILDIR" Value="NETFRAMEWORK20INSTALLROOTDIR" />

    <CustomAction Id="SetInstallUtilDirToNetframework20"

Property="INSTALLUTILDIR" Value="[NETFRAMEWORK20INSTALLROOTDIR]"/>

    <CustomAction Id="SetInstallUtilDirToNetframework40"

Property="INSTALLUTILDIR" Value="[NETFRAMEWORK40FULLINSTALLROOTDIR]"/>



    <CustomAction Id="InstallDuckCreek.Lib.dllPerfCounters_cmd"

                  Property="InstallDuckCreek.Lib.dllPerfCounters"

                  Value='"[INSTALLUTILDIR]InstallUtil.exe"

/LogToConsole=false "[#DuckCreek.Lib.dll]"'

                  Execute='immediate'/>

    <CustomAction Id="InstallDuckCreek.Lib.dllPerfCounters"

                  BinaryKey="WixCA"

                  DllEntry="CAQuietExec"

                  Execute='deferred'

                  Return='check'

                  Impersonate='no'/>



    <CustomAction Id='UnInstallDuckCreek.Lib.dllPerfCounters_cmd'

                  Property='UnInstallDuckCreek.Lib.dllPerfCounters'

                  Value='"[INSTALLUTILDIR]InstallUtil.exe"

/LogToConsole=false /u "[#DuckCreek.Lib.dll]"'

                  Execute='immediate'/>

    <CustomAction Id="UnInstallDuckCreek.Lib.dllPerfCounters"

                  BinaryKey="WixCA"

                  DllEntry="CAQuietExec"

                  Execute='deferred'

                  Return='check'

                  Impersonate='no'/>



    <CustomAction Id="RollbackInstallDuckCreek.Lib.dllPerfCounters_cmd"

                  Property='RollbackInstallDuckCreek.Lib.dllPerfCounters'

                  Value='"[INSTALLUTILDIR]InstallUtil.exe"

/LogToConsole=false /u "[#DuckCreek.Lib.dll]"'

                  Execute='immediate'/>

    <CustomAction Id='RollbackInstallDuckCreek.Lib.dllPerfCounters'

                  BinaryKey="WixCA"

                  DllEntry="CAQuietExec"

                  Execute='rollback'

                  Return='check'

                  Impersonate='no'/>



    <CustomAction Id='RollbackUnInstallDuckCreek.Lib.dllPerfCounters_cmd'

                  Property='RollbackUnInstallDuckCreek.Lib.dllPerfCounters'

                  Value='"[INSTALLUTILDIR]InstallUtil.exe"

/LogToConsole=false "[#DuckCreek.Lib.dll]"'

                  Execute='immediate'/>

    <CustomAction Id='RollbackUnInstallDuckCreek.Lib.dllPerfCounters'

                  BinaryKey="WixCA"

                  DllEntry="CAQuietExec"

                  Execute='rollback'

                  Return='check'

                  Impersonate='no'/>

    <InstallExecuteSequence>

      <Custom Action="SetInstallUtilDirToNetframework20" After="AppSearch"

/>

      <Custom Action="SetInstallUtilDirToNetframework40"

After="SetInstallUtilDirToNetframework20"><![CDATA[NETFRAMEWORK40FULLINSTALL

ROOTDIR]]></Custom>



      <Custom Action="RollbackInstallDuckCreek.Lib.dllPerfCounters_cmd"

Before='RollbackInstallDuckCreek.Lib.dllPerfCounters' />

      <Custom Action='RollbackInstallDuckCreek.Lib.dllPerfCounters'

Before='InstallDuckCreek.Lib.dllPerfCounters'><![CDATA[NOT((NOT

UPGRADINGPRODUCTCODE) AND (REMOVE="ALL")) AND NOT
REMOVEINSTALLSHIELD]]></Custom>



      <Custom Action="InstallDuckCreek.Lib.dllPerfCounters_cmd"

Before='InstallDuckCreek.Lib.dllPerfCounters' />

      <Custom Action="InstallDuckCreek.Lib.dllPerfCounters"

After="InstallFiles" ><![CDATA[NOT((NOT UPGRADINGPRODUCTCODE) AND
(REMOVE="ALL"))]]></Custom>



      <Custom Action="RollbackUnInstallDuckCreek.Lib.dllPerfCounters_cmd"

Before='RollbackUnInstallDuckCreek.Lib.dllPerfCounters' />

      <Custom Action='RollbackUnInstallDuckCreek.Lib.dllPerfCounters'

Before='UnInstallDuckCreek.Lib.dllPerfCounters'><![CDATA[(NOT

UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") AND NOT
REMOVEINSTALLSHIELD]]></Custom>



      <Custom Action="UnInstallDuckCreek.Lib.dllPerfCounters_cmd"

Before='UnInstallDuckCreek.Lib.dllPerfCounters' />

      <Custom Action="UnInstallDuckCreek.Lib.dllPerfCounters"

After="MsiUnpublishAssemblies" ><![CDATA[(NOT UPGRADINGPRODUCTCODE) AND
(REMOVE="ALL")]]></Custom>

    </InstallExecuteSequence>



Tyler Reid | Operations and Infrastructure | Accenture Software | P&C
Insurance

1807 Jones Street | Bolivar, MO 65613| USA

Office: +cc.xxx.xxx.xxxx | Fax: 417.777.3792

E-Mail:
tyler.w.r...@accenture.com<mailto:tyler.w.r...@accenture.com<mailto:tyler.w.
r...@accenture.com%3cmailto:tyler.w.r...@accenture.com>> |
www.accenture.com/pcsoftware<http://www.accenture.com/pcsoftware<http://www.
accenture.com/pcsoftware%3chttp:/www.accenture.com/pcsoftware>>







________________________________

This message is for the designated recipient only and may contain
privileged, proprietary, or otherwise confidential information. If you have
received it in error, please notify the sender immediately and delete the
original. Any other use of the e-mail by you is prohibited.



Where allowed by local law, electronic communications with Accenture and its
affiliates, including e-mail and instant messaging (including content), may
be scanned by our systems for the purposes of information security and
assessment of internal compliance with Accenture policy.



____________________________________________________________________________

__________



www.accenture.com<http://www.accenture.com>

----------------------------------------------------------------------------

--

How ServiceNow helps IT people transform IT departments:

1. A cloud service to automate IT design, transition and operations 2.

Dashboards that offer high-level views of enterprise services 3. A single
system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j

_______________________________________________

WiX-users mailing list

WiX-users@lists.sourceforge.net<mailto:WiX-users@lists.sourceforge.net>

https://lists.sourceforge.net/lists/listinfo/wix-users



----------------------------------------------------------------------------

--

How ServiceNow helps IT people transform IT departments:

1. A cloud service to automate IT design, transition and operations 2.

Dashboards that offer high-level views of enterprise services 3. A single
system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j

_______________________________________________

WiX-users mailing list

WiX-users@lists.sourceforge.net<mailto:WiX-users@lists.sourceforge.net>

https://lists.sourceforge.net/lists/listinfo/wix-users











------------------------------


Tyler Reid | Operations and Infrastructure | Accenture Software | P&C
Insurance
1807 Jones Street | Bolivar, MO 65613| USA
Office: +cc.xxx.xxx.xxxx | Fax: 417.777.3792
E-Mail: tyler.w.r...@accenture.com<mailto:tyler.w.r...@accenture.com> |
www.accenture.com/pcsoftware<http://www.accenture.com/pcsoftware>


----------------------------------------------------------------------------
--
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations 2.
Dashboards that offer high-level views of enterprise services 3. A single
system of record for all IT processes http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to