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

Error 1406 : can't write InProgress key in registry


4 replies to this topic

Bertrand

Bertrand
  • Members
  • 13 posts

Posted 04 April 2001 - 13:28


Hello,


I have a biiiiig problem, and I have to solve it very quickly because the installation has to be released soon.

Here it is : when launching the instalation, I get a 1406 error : can't write the registry key \Software\ Microsot\Windows\CurrentVersion\Installer\InProgress

This error happens from time to time. We don't know WHAT CAUSES this message.
Of course, after the message, the installation fails and stops, nothing installed...

The point is this key seems to be written by MSI or ISWI ( by the way, we are using MSI 1.2 and ISWI 2.03 on WIndows 98 SE).

As you may know the 1406 error is about access rigths, and in our case, they're no restriction. The best evidence : some times, the error doesn't occurr.

First we think it deals with the component number associated with the features (about 90). But further tests proves it doesn't.

Now, we try to test the Destination directory depth. In fact, on some installation we build (and not for all the tests we made), reducing the Destination depth (for exemple, all the component Destination field assigned with [INSTALLDIR]) SEEMS to solve it.
But this can't be a possible solution.

I'm desesperate,
please, if you have any idea or suggestion, let me know, it's VERY urgent.

Regards,
Bertrand


mgama

mgama
  • Members
  • 9 posts

Posted 09 April 2001 - 23:25

The problem is the Windows Installer stores all the directory table and property table info in a registry key during the file transfer process.  On win9x machines, the registry is not infinate.  So if you have a lot of directory table entries, it will try to store them all, in one key, which is not big enough.  Solution: try to eliminate some unneeded entries.

For my setup, I had a couple hundred merge modules, which when merged, resulted in a number of redudant directory table entries, where the GUID was tacked on to the end.  So, as a post process change, I had setup up a query which would go through the directory table, deleting rows, and then updating the component table with the new directory key.  

One poor solution is to install to a shorter install directory, such as "C:\abc" rather than "C:\program files\company name\product name\5.0\"

Mike


Bertrand

Bertrand
  • Members
  • 13 posts

Posted 10 April 2001 - 08:44


Hello,

thanx, it's very nice to take take to answser.

So, for you, the only REAL solution is to have a post compilation process to optimize the dir entries, optimization that isn't built-in in InstallShield ?

OK, let's do it.
Could you tell me, if I misunderstood ?

The basis is to browse the directory table in the generated MSI file, delete the redundant entries (ie the row with the same value) and then update the components accordingly.

Regards,
Bertrand.


mgama

mgama
  • Members
  • 9 posts

Posted 10 April 2001 - 18:56

That is correct.  One way to help determine which directory entries are redudant, is to install the product with logging (msiexec /i C:\my.msi  /l*v C:\log.txt) and look at the bottom of the log file to see all the properties and directories, and their values.

Art Middlekauff

Art Middlekauff
  • Members
  • 14 posts

Posted 10 November 2001 - 23:32

Please note that there is now a solution for this that works with Developer 7.  You can use the ResolveDir utility (http://www.installsi.../ISD1406Fix.exe) to change selected Directory identifiers in your ISM to lower-case.