11/10/2009 2136 views

I have a basic MSI project. If I install fresh (first time), then all the files, dlls I packaged are going to Program Files folder properly. But, when I upgrade the MSI from one version to another, only one file (dll) is not copied on to the Program Files folder. Other files are replaced properly.

Due to this issue, when the application is used for the first time, "self-healing" occurs which I want to avoid.

How to make the upgrade copy all the files at first time?

0 Comments   [ + ] Show comments


Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

All Answers

Are you manually able to delete the DLL file? Probably the dll is being shared by some program. Hence the upgradation to the newer version is unable to replace the file. Try using a custom action to unregister the DLL. To silently unregister u can use the command regsvr32 /u /s "<path_to_dll>". Then proceed to install the new files
Answered 11/10/2009 by: jinxngoblins
Senior Yellow Belt

Nonsense...How will unregistering the file change its shared status?!? And why would the fact that it's shared prevent it being upgraded?

In all likelihood, the target file has a higher version than the one in the MSI. As usual, a verbose log of the upgrade will tell you exactly what's going on.
Answered 11/11/2009 by: VBScab
Red Belt

You are right. The file in question had lower ver # while Upgrade. I chose "Always Overwrite" option in IS to get rid of this issue temporarliy.
Answered 11/12/2009 by: athirukk
Senior Yellow Belt