Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Repair/Reinstallation/upgrade not working


2 replies to this topic

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 15 February 2011 - 11:25

Hello,

Our company is using installshield 2010 to build setups for our new product.

We have 13 brand new MSI installers. 12 of them seem to be working great.

However, in one of them, at least one of the components does not reinstall itself on upgrade or repair.

I have had some issues with the other setups because of some versioning faults (of our own), that required me to force REINSTALLMODE=vemus with a custom action set to run after ValidateProductID IF "Installed". After this, they all started working appropriatelly with the exception of the 13th.

The thing that is so particular about it, i think, after gathering information from the web, is that the component that does no reinstall is a dynamic component with two dynamic file links to different folders. I always use the "create best practice components". Recently we added a file to these folders, that became the first file on the list. I read somewhere that installshield promotes the first file of the component to KeyFile. Don't know if this can be the issue, but it changed... so, i'm guessing.

Anyway, after installing the setup one first time, i delete two files from the disk and run either an upgrade or a repair. Both files don't get reinstalled.

I ran the setup from the command line without forcing variables and again forcing the following:
REINSTALL=ALL REINSTALLMODE=vemus
REINSTALL=ALL REINSTALLMODE=vamus

None works. The installer seems not to do anything. No progress bar stays on the screen more than one second.

The log, which i attached to this post, contains several of these:
MSI (s) (7C:30) [02:10:42:988]: The file represented by File table key '_0808C10F0A4DDE5D0A54A2ECA670E40F' has no eligible binary patches

What can i do to fix this? I'm stuck in this issue for over a day now...

Also, i would like to know... how can i set a component with a specific set of rules (overwrite if this and then that), without having to mess around with the REINSTALLMODE variable. I came from InstallScript setups and i must say, i find it a lot easier to control there... sad.gif

Thanks in advance,
Orlando
--

Attached Files

  • Attached File  msi.log   273.36KB   109 downloads


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 16 February 2011 - 22:19

Did you run update validation?
Dynamic links can be tricky, and adding subfolders via dynamic links is even worse and should be avoided.

orlando.ribeiro

orlando.ribeiro
  • Full Members
  • 13 posts

Posted 01 March 2011 - 16:01

Hello Stefan,

I've been away from office and haven't been able to give you any more feedback.

I investigated this a little further and found these conclusions:

1. The dynamic component with two dynamic links exists since the beginning of the project.

2. The first upgrades work correctly (i recovered some past builds).

3. The component has never been changed in its core. The only changes were 3 more files added dinamically. No dynamic links were added and the dynamic linked location doesn't contain sub-folders.

4. I tested a build with a new component, which contains the second dynamic link. I removed this link from the first component. I changed the GUID from the first component. So, i should have two "new" components. Didn't work.

5. A added a new component with three dummy files. The upgrade did not deploy them.

So, i assume that the upgrade did not break because of this particular component or because of the fact that 2 dynamic links exist.

I've been checking the differences in the .ISM file through the project and found that these rows were removed (i don't know what caused it):

1. Binary Table: <row><td>ISSELFREG.DLL</td><td/><td>&lt;ISProductFolder&gt;\redist\language independent\i386\isregsvr.dll</td></row>

2. CustomAction Table (and install sequence as a result):
<row><td>ISSelfRegisterCosting</td><td>1</td><td>ISSELFREG.DLL</td><td>ISSelfRegisterCosting</td><td/><td/></row>
<row><td>ISSelfRegisterFiles</td><td>3073</td><td>ISSELFREG.DLL</td><td>ISSelfRegisterFiles</td><td/><td/></row>
<row><td>ISSelfRegisterFinalize</td><td>1</td><td>ISSELFREG.DLL</td><td>ISSelfRegisterFinalize</td><td/><td/></row>
<row><td>ISSetupFilesCleanup</td><td>257</td><td>ISSELFREG.DLL</td><td>ISUnSelfRegisterFiles</td><td/><td/></row>

3. in the dynamic components i added a new restriction during the project that removed some of the files of yet another dynamic component based on a wildcard expression.

4. Changed this:
<row><td>_IsMaintenance</td><td>Change</td><td/></row>
to this
<row><td>_IsMaintenance</td><td>Reinstall</td><td/></row>

And that is basically it... nothing else changed in the setup...

NOTE: uninstallation does not do anything either, after this problem. Is says it uninstalled but no files or registry data was removed.

All the upgrade view options are in their default values. I never changed any GUID code (product/upgrade/package), just the product version on each build. I tried to run the update validation, but even after a build it says "Unable to locate the latest build for validation. "" "

Do you have any further suggestions? I need at least understand what causes this, so that i can block/fix this behaviour when the product is ready to market...

If required, i can provide the packages that create this issue (~ 45 mb)...

Thanks,
Orlando.

Edited by orlando.ribeiro, 01 March 2011 - 19:02.