PDA

View Full Version : BDE Meger Module is removing files during a Mindor Upgrade...



TheTraveler
07-29-2003, 02:49 PM
Hello All,

I have ran into a little snag here. I'm performing a minor upgrade and I used a suggested method that was posted here in the community. Here is the link "http://community.installshield.com/showthread.php?s=&threadid=107134&perpage=5&highlight=minor%20upgrade&pagenumber=1"

Well, I did everything that was suggested except a couple of items. This is what I did.

1) Created a new release with a new package code.

2) In the new release view that I just created, I modified the "MSI command line arguments" to be "REINSTALLMODE=voums REINSTALL=ALL".

3) Then I created the custom actions that I called "SetREINSTALL" and SetREINSTALLMODE" and set the value for both actions to be "{}".

4) With the new custom actions, I inserted them in the appropriate places that is described in the link I provided.

- Here is a quote from the link...
i. Go to the Sequences view. Under Installation/User Interface insert both custom actions after CostInitialize. Give both of them a condition of "Not Installed"

ii. Under Installation/Execute insert both custom actions after CostInitialize. Give both of them a condition of "Not Installed"

5) Lastly, I created the funcitons that would be called as a result and I was able to perform custom scripting that I needed to do. They were the OnResumeUIAfter and OnResumeUIBefore function calls.

This method works for me. However, I seem to have run into one little snag. My installation requires to use the BDE merge module. The drivers that I have specified in the BDEMERGE.INI file are being removed from the machine when I perform this minor upgrade. It is removing the files when the components are being updated during the file copy stage.

Has anyone run into this problem where the BDE Merge Module is remove files durning an upgrade?

TheTraveler
07-29-2003, 04:25 PM
I have an additional question. When you run a setup that would go into a minor upgrade mode, will it force the installation into silent mode? If so, then I have found the problem and answer.

==============================
Link:"http://www.installsite.org/pages/en/bugs_msi.htm"
==============================
BDE Merge Modules Fail in Silent Install

Description:
If you run your setup in silent mode using the /q command line switch, some of the files in the BDE merge modules don't get installed.
Cause:
Some components have conditions that are set by custom actions. These actions are only inserted to the User Interface sequence. In silent mode this sequence is not executed by Windows Installer.
Workarounds:
Set the properties MSSQL and ORACLE in a custom action if your setup runs in silent mode.
Status:
This problem is reproducible with the BDE 5.11 merge modules.
Created: 2001-04-17
============================

If this is indeed the problem, the work around mentions the properties for Oracle and MSSQL. Where are these properties and what do I do to set them too?

TheTraveler
07-30-2003, 10:38 AM
Well, I ran the installation again and used this little bit of code to verify what installation mode I'm currently in.



if MODE = SILENTMODE then MyAddToLogFile("The installation is in Silent Mode.");
elseif MODE = NORMALMODE then MyAddToLogFile("The installation is in Normal Mode.");
elseif MODE = RECORDMODE then MyAddToLogFile("The installation is in Record Mode.");
else MyAddToLogFile("The Installation Mode is Unknown.");
endif;


It turns out that the installation is in NORMAL mode. This means that the above mentioned problem shouldn't apply here. :(

Does anyone else have any other idea?

philiph
10-02-2003, 04:40 PM
Did you ever figure this out? I too am having the exact same problem but cannot figure it out.

Thanks for any help.

TheTraveler
10-03-2003, 10:10 AM
It has something to do with the BDEMERGE.INI file. For some reason, the merge module part of the installation is not accessing this file. Because of that, it won't satisfy a condition of installing the driver you have selected in the ini file. In fact, if the condition isn't met, it will remove the file. This, to me, is a bug. So I opened the merge module in Istall Shield Developer, took out the condition on the drivers we need to have installed, and rebuilt the merge module. I couldn't find any other way to do this. If you do, please let me know.

philiph
10-06-2003, 12:31 PM
I have opened an incident with IS regarding this problem and have gotten some information and workarounds. Here is what they have to say:

"As documented, this looks like a problem using a minor upgrade with components where the key files haven't changed. However, in your case, it looks like every component that fails this validation step is related to a merge module, including the component containing sqlint32.dll. Some of the corrective actions listed involve altering the troublesome components yet this isn't an option in your case since the components are part of a merge module. The final corrective action, running this upgrade as a major upgrade, would probably be your best bet. Another workaround, as we have discussed, could be to set REINSTALLMODE to a, even though this can in some cases corrupt the target system."

I do not like "workarounds" and am not even sure if this has been fixed in later version of ISDev. For me, I can use the "a" in REINSTALLMODE= to overwrite all files because the files that I am updating cannot be changed by the user, therefore I will not risk overwriting their files.


Also, here is the help link to IS online help:
http://documentation.installshield.com/

Type "Val0010" into the search field and click on the one result. That article will give a little more information.

Hope this helps you.

TheTraveler
10-06-2003, 01:56 PM
I also came up with those particular work aronds and I didn't like them either. I would have liked to use the "a" option, but I can't due to some other factors. Personally, I believe that there is a huge bug with the merge module. If we install our software where the BDE is already in place and then do a minor upgrade, the other software package has a risk of not working when the Merge module removes drivers.

philiph
10-06-2003, 03:32 PM
The next suggestion was to do a major upgrade. Bah. I agree with you that this seems to be a major bug.

DevStudio9 does not solve this problem either.

Oh yeah, I am not overwriting all of my files, I have a couple of files that I mark "Never Overwrite" and it seems this works. Maybe using REINsTALLMODE=avoums and marking your files would help.

philiph
11-04-2003, 10:53 AM
Still working on this and came up with a little better solution, which might be what you have already done.

Open the BDE Merge Module, find the file(s) that are being removed in the Component Table. Add 16 to the attributes column for each file getting removed. This works for me and you don't have to overwrite all files.

Hope this helps.