I have an assembly that is installed in the GAC by my InstallShield installer. The component is marked as Permanent so that the DLL is kept when the program gets uninstalled. So far it works fine.
However, if I update the program, I expect that two versions of my DLL be present in the Global Assembly Cache: the DLL for the previous version and the one for the new version (since the Permanent property is set to Y, the previous version should not be uninstalled). But that is not the case: only the latest version is present after the update.
My understanding is that InstallShield assigns a logical path for my DLL to be eg. [GlobalAssemblyCache]MyAssembly.dll
, whatever the version. Therefore, even if there is seperate paths in the GAC, InstallShield replaces the DLL in the GAC.
Is my understanding of the behavior correct? In any case, how can I prevent InstallShield from removing my previous version?
Thanks,