As long as your shared resources are in a component with the same GUID
(i.e., your instance transforms do not re-GUID your components) yes, Windows
Installer (and fusion for GAC assemblies) do keep a reference count. Bear in
mind, however, that if you uninstall a patch for any instance files are
downgraded (shared component ref counts don't guard against that)
*unless*you are installing with MSI 4.5 and specify the
Component/@Shared="yes"
attribute.

If you are applying your instance transforms as secure transforms
(transfor...@emea_instance) you do not need to specify them again even
during uninstall.

When you look in a verbose installer log (msiexec.exe ... /L*vx install.log)
does the log say the action was skipped because the condition evaluated to
false? After a product is installed (after InstallFinalize returns) the
property Installed should always be defined.

On Tue, Jan 13, 2009 at 4:35 PM, <phillip_sid...@dellteam.com> wrote:

> I have created a number of instance transforms in my WiX installer as
> below:
>
>                <!-- Non-Default instances -->
>                <InstanceTransforms Property="APPINSTANCE">
>                        <!-- These instances are for DIT, SIT and PROD
> -->
>                        <Instance
> ProductCode="4E7CC0E0-BECC-4e79-A626-20028B93C8C9" ProductName="MSS DAO
> Windows Service" Id="DAO_Instance"/>
>                        <Instance
> ProductCode="3F164DA9-8C57-49e9-9346-A06DA9B5580D" ProductName="MSS EMEA
> Windows Service" Id="EMEA_Instance"/>
>                        <Instance
> ProductCode="35646A8B-F991-44b1-AAE8-57DF08B30272" ProductName="MSS APJ
> Windows Service" Id="APJ_Instance"/>
>
>                        <!-- These instances are for UAT - special case
> becuase they may exist on same servers as SIT instances -->
>                        <Instance
> ProductCode="14CAA264-8CF9-48d8-B174-0A5B298C561E" ProductName="MSS DAO
> UAT Windows Service" Id="DAO_UAT_Instance"/>
>                        <Instance
> ProductCode="CD94A497-0091-4522-AD60-E21A7CFBDFF0" ProductName="MSS EMEA
> UAT Windows Service" Id="EMEA_UAT_Instance"/>
>                        <Instance
> ProductCode="2D226523-ADF4-40fa-BA1E-624FE84EF1CF" ProductName="MSS APJ
> UAT Windows Service" Id="APJ_UAT_Instance"/>
>                </InstanceTransforms>
>
> When uninstalling one of these non-default instances, I need to make
> sure that my custom actions get run.  Most of the time I will be leaving
> other instances on the machine.
>
>
> <Custom Action="CleanupDataFiles"
> After="InstallFinalize">Installed</Custom>
>
> This custom action does not run when uninstalling with msiexec /u
> TRANSFORMS="EMEA_Instance ...
>
> However, the rest of the app instance gets uninstalled fine. Does
> someone know the correct condition to use?
>
> On a related note when GACd assemblies and shared COM objects are
> removed for one instance, does the MSI and/or windows keep a usage count
> so that other instances are not broken?
>
> Thanks.
>
> -       Phil
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
>



-- 
Heath Stewart
Deployment Technologies Team, Microsoft
http://blogs.msdn.com/heaths
------------------------------------------------------------------------------
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to