If I'm installing a file to the system32 directory, the
SharedDllRefCount='no' attribute on my component seems to be ignored, and
the refcount on the file is set to TWO after installation, which means the
file never gets removed (It gets set to ONE after uninstallation). Is this a
backward-compatibility issue where system32 files are meant never to be
deleted?

Has anyone else had this problem?
-Brian

On 12/21/06, Arnette, Bill <[EMAIL PROTECTED]> wrote:



> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of
> André Pönitz
> Sent: Thursday, December 21, 2006 3:20 AM
> To: wix-users@lists.sourceforge.net
> Subject: Re: [WiX-users] Installed: Local; Request: Absent;
> Action: Null ?
>
> Arnette, Bill wrote:
> > Non-Windows Installer installers use the SharedDlls registry
> > key to refcount the usage of common/shared dlls.  By default
> > Windows Installer will only increment that refcount if it
> > already exists so that the other installer will track the
> > refcount properly if a WI installer installs the same file.
> > Windows Installer also maintains its own refcount for
> > components it tracks elsewhere.  You can force Windows
> > Installer to create a SharedDLLs entry if it doesn't already
> > exist with the msidbComponentAttributesSharedDllRefCount
> > attribute on a component.
>
> So this is what the SharedDllRefCount='yes' attribute means...
>
> Let me try to get the consequences for me straight: if I have
> an old installer using the SharedDll mechanism and new installers
> are msi based (and will stay so for the forseeable future) I
> would not have to explicitly use SharedDllRefCount='yes' and
> it'd still work if I install my newer version in parallel (yes,
> we do that...) to the older version and I could deinstall
> in arbitrary order.

As I understand it, yes; theoretically :)

>
> It would not work, however, if I installed the new version first
> and than the older one in parallel. But as that's not a
> scenario I need to support, I'd be ok without using the
> SharedDllRefCount='yes' attribute.
>
> Did I get that right?

Right, because unless you explicitly tell MSI to use SharedDllRefCount,
the other/older installer is unaware that the MSI-installed product/version
is sharing that file.


>
> > So what that log indicates is that a non-WI installer
> > installed that file before your product was installed and
> > that since the SharedDlls refcount will not go to 0 after
> > your product is uninstalled, the file will not be removed so
> > that the other product is not broken.
>
> Ok, that's probably exactly what happens as I have an
> older version installed (or at least not fully uninstalled)
>
> Thanks for the explanation,
> Andre'

Glad I could help.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users




--
===========
Brian Patton
http://people.bu.edu/bjp/
http://people.bu.edu/reallife/ourstories.html
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to