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

Broken KeyPath - Self Repair


10 replies to this topic

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 29 July 2003 - 19:24

We have a broken KeyPath after upgrading to our latest Major Release. This is OK as we instruct the user to leave the installation CD in the drive then start our application which then repairs itself.

Here is the problem ... It seems on some systems that it is attempting to apply the total cost of installation to the C:\ during the repair. Does anyone know what action this is? Maybe I could just bypass this costing during the repair install.

Some users have minimal space on their C:\ (our install requires 80 MB during a successful install for system files, etc.) so they install our product and the majority of it's files to an alternate drive.

For example, we have a user with 200 MB free on his C:\ drive. After installing the update and starting the application (to trigger the self repair), the self repair is indicating he need 600+MB.

Does anyone understand what I'm trying to say or am I just rambling. I hope someone can help me out.

Thanks in advance!!

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 29 July 2003 - 19:59

On repair, does your INSTALLDIR point to the correct location (look in the log)?

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 29 July 2003 - 21:13

Our INSTALLDIR defaults to C:\. I guess this is why it's bombing on the self repair. It checks for required space before actually seeing where the application was installed to (since there is no user interface to set the INSTALLDIR like in a normal installation).

How can I create a log during the self repair? The installation has actually completed and it only repairs itself when the user attempts to start our application.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 July 2003 - 10:21

Make sure your INSTALLDIR is properly set. Either store it in registry, or make sure at least one component has a key path pointing to INSTALLDIR.

Use the registry entry method to globally enable logging for all MSI setups, including repairs. See http://www.msifaq.com/a/1022.htm

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 30 July 2003 - 14:06

What do you mean by make sure the INSTALLDIR is correctly set? Set where? Do you mean make sure it is correctly in the Registry somewhere from the initial Major Upgrade. I ask because when the repair install kicks off, there is no dialog to set INSTALLDIR. It looks to the original installation source location (CDROM in my case) and just does it's own thing. Is it reading the INSTALLDIR from the install source location, which in this case defaults to C:\?

Here's what I was thinking. Find out which action is actually calculating the cost. Insert it again later in the sequence and condition it to calculate if the install type is that of self repair. On the original cost calculation, condition this to run only if NOT a self repair installation. This is just a thought because I don't actually know how the self repair/sequencing works.

I might be in BIG trouble here.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 July 2003 - 18:27

INSTALLDIR is not the source, but the target directory.
Sometimes MSI doesn't preserve the value of INSTALLDIR, so it falls back to the default value upon repair.

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 31 July 2003 - 15:16

Is there any way around this? I was able to set registry entries to create the msi*.log and it does appear that the INSTALLDIR is seen as C:\ and the cost calcualtions are based on the remaining space on that drive.

I was wondering if I can skip whatever costing action calculates to the error during this type of self repair install. In other words, can I condition whatever action is doing this to not run if the install type is self repair?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 31 July 2003 - 15:35

The correct solution would be to persist the value mof INSTALLDIR, as explained before.

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 31 July 2003 - 15:40

Would it be the InstallValidate Action? What is the name for the repair installation type?

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 31 July 2003 - 18:02

OK, I'll try to install a component to INSTALLDIR.

Superfreak3

Superfreak3
  • Full Members
  • 437 posts

Posted 31 July 2003 - 18:39

Forget the garbage I was trying to sort through. Stefan, you are the man!

I simply installed a component to INSTALLDIR and my problem I solved.

Thank you SOOOOOOO much for the info!