PDA

View Full Version : [INSTALLDIR] being changed during minor upgrade



repins
05-13-2004, 05:23 PM
Someone please help me...I'm dying here!

I have serious problem with a minor upgrade (well, not like that's anything new, been having trouble since 7.0; at least it's different problems now) where my [INSTALLDIR] property is changed sometime during the file transfer process. I have validated that the property is set correctly based on my previous installation before the install starts copying files, but when you check the properties at the end of the upgrade, the [INSTALLDIR] and [TARGETDIR] are both set to c:\ and not C:\program files\My App.

Note the installation installs fine when I install it as a first time installation. I did not change anything in the installation. I got so annoyed that I started over with my previous installation and only changed the necessary settings to trigger a minor upgrade (vesion number, package code). I did add a few other checks install conditions that weren't there before, but even after taking those out again it still won't work.

My scenario is this:
I have version 5.0 which used ISD 7.04.

Later after upgrading to ISD 8.02 I released version 5.1 of my product. However, 5.1 had to be a major release (to fix a few dumb errors).

Anyway, I'm now trying to build up the next release, version 5.2 that can upgrade 5.0 (as a major) and 5.1 (as a minor) using DevStudio 9.01. The major works just fine as I would suspect given that's easier when uninstalling everything, but the minor just installs all my root files to the root of C:\ instead of the root of [INSTALLDIR]. One additional piece of frustration is that I have 2 subfolders in my [INSTALLDIR] which still install just fine during the minor upgrade. I have removed a file from each of those subfolders and it is reinstalled just as expected, but when removing one from the root of [INSTALLDIR] it fails to replace it and just installs all those files to the root of c:\.

I'm in contact with IS support, but it's taking forever and I don't see me getting anywhere with them anytime soon; I'd call them up, but phone calls to support are an even bigger pain in the ***. They have already tried to create a sample app in dev 8.02 and install that package then upgrade the package to DevStudio 9.01 and create an upgrade package and it worked successfully (I too tried this and it worked and have been unable to reproduce the same effect as my other project). If anyone has run across this and has any suggestions, please oh please post it here. At this point I'll take any suggestions.

As a last resort I may still have to go with a major upgrade for this release as well, but I'm doing my best to avoid that.

repins
05-28-2004, 04:16 PM
Well I have nothing new to really update on this issue as it's still happening. I've been in touch with support at IS and they haven't been able to reproduce it on their side, so of course they're no help. I sent them my ISM file and after they removed all my files and added just notepad they were unable to reproduce the problem.

I've been trying to figure out what the sequence of events is to recreate this so that hopefully IS support can give me a work around, but have been unable to do so. I may just go back to Dev 8.02 instead for this minor release and go with DevStudio 9 for my next major release.

Bloopy
06-24-2004, 12:51 PM
Don't suppose you have discovered anything more about this?

I'm seeing something similar, although it is with applying a patch, using MSIApplyPatch. For the past while, have been creating installs on one machine using Developer 8 and then creating the patch itself on another machine with DevStudio 9. Working just fine. Was avoiding switching everything over to 9 until time permitted.

Now project has been converted to 9 but when I create a patch based on Previous setup = uncompressed of the 8.0 MSI and Latest Setup = uncompressed of the 9.0 MSI, the INSTALLDIR changes to root of drive during patch. Only a few files in the patch itself but the patch process apparently tries to fix the install by extracting files from the original MSI and placing them in the root, C:\.

The files affected are those that originally were supposed to go to root of correct INSTALLDIR + any that had a Directory Parent of INSTALLDIR and were long file names. The other files/folders were unaffected. There was also a problem with the MSI itself, where 9.0 seems to have fixed a bug in 8.0 that dealt with long file names. The Directory table as viewed though IDE is idential 8.0 to 9.0 but the DefaultDir in the resulting MSI is different between the two. Need to manually edit 9.0 built MSI in order to set one of the directories back to how it was evaluated under 8.0. Then the patch will not try to include that entire directory, mistakenly thinking it is a new one.

Also, when the patch was done on a PC with 2 drives, log shows the INSTALLDIR being set to the second drive, E:\. Application being patched did reside in a subfolder on the E:\ drive...

Changing ProdVer makes no difference. Used MSIPackageDiff to compare the 8.0 MSI to the 9.0 MSI and there are several differences, but none that seem related. The same patch created under 8.0 entirely works fine. Must be a problem with the MSI itself (?) since patches themselves have always been created under 9.0.

Now have to install 8.0 to new machine (old one mostly unavailable) and see what happens.

*** 11.16.07 UPDATE: 3.5 years later and we finally needed to upgrade this project to IS12. Many hours later still could not get minor upgrade patch to work in any way, the patched files always went to the root of C:\. INSTALLDIR was correct before CostFinalize, got re-set to C:\ during that action and changing it back afterwards had no effect on where the files went. Wound up needing to do a major upgrade in an awful hurry.
I did make a test project in IS8, created uncompressed setup etc., convert the project to IS12 and make a patch between the two. Everything worked fine in that case, must be something beyond just IS8 converted to newer version that causes the problem.

Kochise
06-25-2004, 02:34 AM
This silly installed all my files on the root of the drive on the minor upgrade !!!

Feed up, and just thinking about switching to Inno Setup... Hope I will have less problems :/

Kochise

repins
07-01-2004, 05:24 PM
Installshield support was absolutely no help, seriously the support contract with them for the most part is a waste of money. They should be offering free basic support, especially so when there's a bug in their software. Rest assured I won't be requesting my boss to renew the contract.

Anyway, I tried many many times to reproduce this problem with a very simple installation and was not able to do it :(. Although, with my target installation, it happens all the time. Eventually I just gave up and went back to using Dev 8 though which works fine. however, a different problem appeared which is the minor upgrade doesn't correct retain the installdir when you use something other than the default path (This is a sore point for me because I've sent IS support a set of packages that clearly reproduces the problem with no real effort and they still can't reproduce it [I'm assuming they actually tried it with the packages I gave them, but I doubt it]).

Basically what happens is the minor upgrade will install the updated files without a problem, but if you set any registry values with the INSTALLDIR variable, you're in for a surprise...it always has the default directory in it no matter what directory you actually installed too. course if you don't need the INSTALLDIR for anything it's ok, because the upgrade does work by itself.

Kochise
07-02-2004, 07:29 AM
It seems I start to have a clue on my own, for my own case, which should damage the INSTALLDIR property : I feature some merge modules and system DLL files in my own features (such mfc42.dll). If this one shouldn't actually corrupt anything, maybe spr32d60.dll (hand installed file) or comcat.dll (merge module)...

I use a trick on minor upgrade, read this post : http://community.installshield.com/showthread.php?s=&postid=277164 ! I had a look on my log file and it appeared the follow files were deleted (with our own files) just before the minor upgrade starts upgrading (end of OnResumeUIBefore) :

File:Delete=comcat.dll
File:Delete=mfc42.dll
File:Delete=msvcrt.dll
File:Found=SourceDir\System\msxml3.dll (NO DELETED)
File:Found=SourceDir\System\msxml3r.dll (NO DELETED)
File:Found=SourceDir\System\msxml3a.dll (NO DELETED)
File:Delete=olepro32.dll
File:Delete=asycfilt.dll
File:Delete=oleaut32.dll
File:Found=C:\WINDOWS\System32\spr32d60.dll (NO DELETED)
File:Found=C:\WINDOWS\System32\CP30FW.DLL (NO DELETED)

So maybe IDriver should have lost some needed DLLs and thus INSTALLDIR (go figure about any possible link between the two :/) ! Well, thanks to the LOG, I now manage not to delete real system files such comcat.dll and so (installed by the merge module, but found by FindInstallFiles).

Nowadays, I STILL have a problem with INSTALLDIR, while I no longer delete any system file. Hope this is not a real issue and just a mistake by my fault. Anyway, getting deeper into Inno...

Kochise

Kochise
07-13-2004, 03:51 AM
I released a previous version of our product using InstallShield Developer 8 ! I upgraded to DevStudio 9 and when trying to update the product, I get this silly behavior, with files going into the root of SetupDisk !

I tried the following : Install the product with DevStudio 9, upgrade it with DevStudio 9 - NO PROBLEM !!! Currently, InstallShield *IS* the problem !

NEED A SOLUTION TO MAKE UPGRADE WORKING FROM IS 8 TO IS 9 !!! Especially shortcuts locating <CommonFiles>\InstallShield\IDriver\[8/9]\Intel 32\IDriver.exe !

Also noticed that my Key Names on shortcuts were not converted at all from IS 8 to IS 9 ! "100% conversion granted", hu ?

Kochise

Kochise
07-15-2004, 02:47 AM
The only thing I can tell you is that our development team is aware of the problem and as of right now it is a design limitation. Neither they nor I can promise whether or not it will be fixed or not. I am sorry I cannot give you more information at this time about this.

Understand : a product installed using InstallShield 8 cannot be upgraded using InstallShield 9 !

Solution : As it is a main Murphy's law, NEVER EVER try to upgrade once you became accustomed with your current version of InstallShield (and found how to work around every bug you found) !

Kochise

repins
07-16-2004, 04:06 PM
That's more information than they gave to me when I went through a support call/email with them. All they told me was that it was being looking into and that they couldn't reproduce it yet. I swear to god that support contract was such a waste of money!

repins
07-29-2004, 07:41 PM
Installshield support finally got back to me (took a long time, but I guess it's good that they did get to me at all) with a work oder number.

Their response was basically this:

****************************
This issue has been submitted to our Development team as work order # 1-Q4J11.

Our Development team is investigating this issue, but at this moment, there is no estimated time frame for when this issue will be fixed.

blah blah blah....
****************************

Ok they didn't write blah blah blah, but the important text is above that. Guess they finally realized it's a bug and that it's simple to reproduce. The only thing I can't figure out, is given how easy it was to reproduce on any computer I tried, what the heck were they doing when I asked for help and explained the steps to reproduce it?????? Not even just that...I even gave them the installations which produced it every single time! Oh well...just don't upgrade to DevStudio 9 if you're currently using Dev 8 or 7 (didn't try with 7, but why take the waste the time).

Have fun everyone... :-)

Kochise
08-20-2004, 02:27 AM
I think it summarize things well ;) Don't believe in Santa anymore !

Kochise

nmsams
02-27-2006, 06:16 PM
I had this same problem with my install. When you installed it into a directory that was not the default and then selected to view the readme file it would blow up (but it would work fine if it was installed in the default directory). I upgraded to Installshield 11.5 and it finally works now. Just thought you all should know!