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 on all 9X installs


6 replies to this topic

Vytas

Vytas
  • Members
  • 1 posts

Posted 03 July 2001 - 17:59

I'm getting a runtime install error of "Error 1406: could not write value folders to key Software\Microsoft\Windows\CurrentVersion\Installer\InProgress.  Verify you have sufficient access to that key, or contact your support personnel."
on ONLY 9X platforms (95/98/ME) during installation sequence.  Profiles are disabled, that key specified (in HKLM I'm assuming) does not exist and if I create it then run my install, the installer is courteous enough to blow it away for me and complain again.  Anyone have any input?  ISWI v. 2.03
Thanks

(Edited by Vytas at 1:29 pm on July 3, 2001)


Dave I

Dave I
  • Members
  • 195 posts

Posted 23 August 2001 - 11:22

Vytas,
            I have the same problem.  I found that during the installation the following value is written to the register HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Inprogress.  On WinNT, 2000 the Directory table (its entries) are written to ...CurrentVersion\Installer\"Folders"\DIR01.... key with each directory given a value, OK every works fine there.

Now on Win98 for some bizzare reason the Windows Installer decides to merge all of the directory entries into a single value.  Yep, you guessed it...HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Inprogress\Folders.

Win9x has a 16k limit on registry values and our sizable installation meant that this limit was being exceeded.

I am afraid I do not know of any fix, anyone else?

Hope this helps,
Dave


Linda

Linda
  • Members
  • 5 posts

Posted 01 October 2001 - 21:43

This also happens on Windows ME.  I'll bet you are using IPWI Update 2.03.  

For me, the same project that was built with 2.01 installed with no error but when built with 2.03 the error cited above was received.  

A look at the Directory table for the .msi built with 2.01 showed that most of the directories were small case [dirname].  The Directory table for the .msi built with 2.03 had mostly uppercase [DIRNAME].   Windows Installer merges all the directory entries that are UPPERCASE into a single value for Win98 and ME which caused the value to exceed its limit.  
I believe this is an Install Shield bug in 2.03.  Someone just decided to make the directory names UPPERCASE and did not thoroughly test the affect that this would have on large projects installed on Win98 and ME.   I reverted back to 2.01 and this solved my problem.  

My worry is that this will not  (or has not) been corrected in subsequent versions.
Linda

I reported the above to InstallShield as a problem in 2.03 and received the following reply from Art Middlekauff:

"In the Windows Installer, only directories in all upper-case are public and
hence shared between the UI sequence and the execute sequence. In 2.03,
upper-case entries are normally used to prevent surprising errors when a
directory value is not maintained between the UI sequence and the execute
sequence.

InstallShield Developer 7.0 (http://www.installshield.com/isd/) the default
behavior is the same as 2.03. However, in Developer 7 the Direct Editor
allows access to every table and record in your package. If you know that a
certain directory value does not need to be public, you can change it to
mixed case in the Direct Editor. Hopefully this will resolve the problem you
describe.

We will consider providing more options in future releases to allow the
setup author to choose between public or non-public directory records."
--
Art Middlekauff
InstallShield Software Corporation

Guess we will be staying with 2.01 for the forseeable future.   We could write a utility to edit the .msi database but why should we spend the time to correct InstallShield's program?




Art Middlekauff

Art Middlekauff
  • Members
  • 14 posts

Posted 10 November 2001 - 23:26

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.

Scott Mayham

Scott Mayham
  • Full Members
  • 54 posts

Posted 27 February 2002 - 16:35

On what basis does one decide to use "public" versus "private" directory entries?  

I'm working on my first ISD7 installation, for an app that has many, many, many folders.  The Directory Table is quite full as you would guess, and all of the App's folders are defined in entries in UPPER CASE.  

There are no duplicate entries, so there's no help there.  It is tempting to try and change all entries which do not have to be in upper case, back to mixed upper-lower case.  But so far, I have seen nothing to suggest how to determine which entries MUST remain upper case.  

Is there something in a KB article somewhere?  The SDK Help was no help.

Thanks,


Art Middlekauff

Art Middlekauff
  • Members
  • 14 posts

Posted 27 February 2002 - 19:03

The main concern is usually whether the value can be changed during the UI sequence.  If the user (or something else) can change the value during the UI sequence, then it should be public.  So INSTALLDIR is almost always public.  But if you have a subdirectory INSTALLDIR\foo based on INSTALLDIR, it may not need to be public

Scott Mayham

Scott Mayham
  • Full Members
  • 54 posts

Posted 28 February 2002 - 15:36

Thanks, Art.   Based on what you say, most (if not all) application subdirectory folders in the Directory Table need not be public.  I'll proceed on that basis.

Regards,