View Full Version : Upgrade and Patch

12-28-2002, 06:51 AM
I have un installation make with ISX 3.05.
Now i upgrade to ISX 4.0 and I make a patch.
Why when the patch installation start it request the oldest MSI installation ?

Mike Marino
01-02-2003, 12:51 PM
Patching in Express in the simplest of terms is building a file that contains only the differences between your original MSI package, and the data you add in the patch. If you change a single EXE in your patch, an Express built patch will not contain that single EXE, rather only the binary differences between the orginal EXE and the new EXE. Thus if you made relatively minor changes to an EXE, your patch could be quite small.

But in order to do this type of packaging, Express needs to know what to diff your new files against.

Hope this helps

01-04-2003, 05:19 AM
ok, i understand the difference, but why if I make an installation with ISX 4.0 and after i make a patch, when I instal the patch doesn't request the MSI of the complete installation.
If the originally project built with ISX 3.05 when i lunch the patch (or an Upgrade made with ISX 4.0) it request the oldest MSI.

Mike Marino
01-06-2003, 10:24 AM
It does not need to ask for the original installation image because it uses the one that MSI caches on the user's system. When you run an MSI installation, the MSI package itself is cached at something like:


MSI gives it a cryptic name, but it is cached in this location.

01-08-2003, 08:16 AM
I have done with ISX 3.05 sp 4 an
installation of my product.
After, I upgrade my ISX at the new version 4.0, so i can do a patch to upgrade my product installation.
When I instal the new patch, created with ISX 4.0, on the machine where is present the oldest installation created with ISX 3.05, it request the location of oldest MSI.

Mike Marino
01-08-2003, 09:35 AM
If you are just trying to make a patch of your 3.05 built installation, you do not need to upgrade the project to 4.0. You just need to point the Quick Patch wizard to the MSI file you built when you used 3.05.

01-08-2003, 10:26 AM
Yes, that what i have done, but still request the location of the original msi package.
In order to clarify the matter this issue when I try to run the patch on a customer machine where there is a previus installation created with ISX 3.05 the running patch not complete the installation process because ask the original MSI package path.
The problem doesn't happen if I execute a patch of an installation converted to ISX 4.0.
My big problem is that all my customers have allready an installation of my application done with ISX 3.05 sp4 and I'm not able to run the patch on their machine.
1) create a simple project with ISX 3.05 sp4
2) run the project on a target machine in order to complete the installation process
3) create with ISX 4.0 a patch pointing directli to the previous MSI project
4) run the patch on target machine in order to upgrade the previous installation and as you will see during the execution window installer will ask for the previous MSI package.

In order to replicate a CD installation, is important that you remove all the setup files before run the patch if this as been saved on the target machine.

01-08-2003, 11:26 AM
This is very strange. I tried the scenario you mentioned with 3 files and I didn't have this problem. I created a 3.54 setup (CDROM build) and ran it. Then I changed the folder name so that the source msi can't be found. Created a patch for the setup using Express 4.0 and ran the patch. I wasn't prompted for the original msi file.

My Patch did the following:
1. Delete a file
2. Update a file
3. Added a new file

Does your patch do anything else? Also try logging the patch and save the log when the error comes up. This way we MIGHT find out why it needs the source. Please post the log here so that I can take a look as well. To log the install use the following from the command line:

Update.exe /v"/lv C:\PatchLog.txt"

01-08-2003, 11:58 AM
I attach the file so you can see my problems.


01-08-2003, 12:09 PM
According to your log it seemed like everything patched properly without any errors. Try logging the install as follows:

1. Install the 3.54 setup on the machine
2. Remove the media from the CD
3. Run the 4.0 Patch
4. When the error message asking for original msi comes do NOT enter the CD or close the error message
5. Open the log file (while the error message still shows) and copy it's contents to another file. Post this new file here. This was the last few lines will show the error, and hopefully what caused the problem.

I see you have the BDE module in your setup and have strong feeling this is what's causing the problem. I say this because the BDE module asks for the source msi when you try to uninstall. This is a bug in the BDE module. I want to verify this is the case though.

01-08-2003, 12:22 PM
This is the file. I hope to solve this problem because ii's very important for me.

01-08-2003, 01:26 PM
My guess was correct. Here are the last 4 lines of the log:

Fine operazione 18.18.50: CostInitialize. Valore restituito 1.
MSI (c) (59:ED): Doing action: BDESetSQLLinks.E966F0CB_76B3_11D3_945B_00C04FB1760A
Inizio operazione 18.18.50: BDESetSQLLinks.E966F0CB_76B3_11D3_945B_00C04FB1760A.
MSI (c) (59:ED): Creating MSIHANDLE (2) of type 790542 for thread -257299
Inizio operazione 18.18.50: ResolveSource.

BDESetSQLLinks is a Custom Action in the BDE module that calls the ResolveSource action (this is the action that asks for the original msi file). Since the BDE module is authored by Borland I'm afraid there is nothing we an do. Please contact Borland support and see if they have a newer merge module that doesn't cause this problem. Sorry.

01-09-2003, 09:30 AM
Thanks for you help, but I don't know how to solve this problem.
Have you same idea?
Do you know somethings to upgrade BDE merge module?