umaunni
Posts: 15
Joined: Wed Jul 11, 2012 3:31 pm

Dll is not replaced properly when new version installed

Hi,

I have the Advanced installer 6.3, in which i have 2 different versions of EXE's(12.1 and 12.2) which are having same sample.dll with different size and version.

When i install the version 12.1 its added the sample.dll of version 12.1.
When i trying to install 12.2 version its not replacing the sample.dll of version 12.2, instead its having the same version.
I have deleted the sample.dll of verion 12.1 from the installed path and tried to install the 12.2 version its still adding the 12.1 version of sample.dll.
I have no idea from where its picking the old version of sample.dll.

I have Checked the Checkbox "Ensure that this file overwrites any installed target file."

The Operation System is Windows Server 2008 R2 standard

Thanks & regards,
UmaUnni
Eusebiu
Posts: 4959
Joined: Wed Nov 14, 2012 2:04 pm

Re: Dll is not replaced properly when new version installed

Hi UmaUnni,

I'm not sure why you encounter this behavior. Can you reproduce the behavior on multiple clean machines? If so, can you please send us the two .AIPs (the 12.1 version and the 12.2 version) and a verbose log of the 12.2 version installation to support at advancedinstaller dot com so we can investigate them and try to find the problem?

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
umaunni
Posts: 15
Joined: Wed Jul 11, 2012 3:31 pm

Re: Dll is not replaced properly when new version installed

I have examined and found that 12.1 is the base version that Sample.dll of 12.1 version is cached in the following path
C:\Windows\Installer\$PatchCache$\Managed\registered key

Will it Impact sample.dll of version 12.2 ?

1. What this PatchCache will do exactly?
2. What is the use of GUID of each dll of Component?

The GUID for both version of dll is same. Is that the problem?

Note: 12.2 exe is a patch.


Thanks & regards,
UmaUnni
Eusebiu
Posts: 4959
Joined: Wed Nov 14, 2012 2:04 pm

Re: Dll is not replaced properly when new version installed

Hi,
Will it Impact sample.dll of version 12.2 ?
Some files are automatically cached by Windows Installer to that folder and if both version of your product points to the same folder, the problem you encountered may be encountered.
1. What this PatchCache will do exactly?
This folder keeps files installed by the patches because these files might be needed when another patch will be installed. You can read more details about this in the The Patch Cache and Freeing Space article.
2. What is the use of GUID of each dll of Component?
Windows Installer works with components using this unique GUID. You can read more details in the Windows Installer Components article.
The GUID for both version of dll is same. Is that the problem?
No, this is not a problem. This is the normal behavior.

The problem is that you may try to create a "non-conventional" patch that uses the same Upgrade Code and Product Code as the main MSI package, but uncheck the "Register product with Windows Installer" option.

It seems that Windows Installer interprets as patches the unregistered packages and if they have the same Upgrade Code as the package that they are upgrading, resources from the $PatchCache$ folder are used. Can you change the Upgrade Code of the patch and see if it works?

Best regards,
Eusebiu
Eusebiu Aria - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”