This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: InstallShield creating huge Patch
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 12, 2008
05:51 PM
InstallShield creating huge Patch
I have created an Install using Basic MSI for our software package. Our software consists of hundreds of EXE, DLL, and other data files. When I want to create a patch using the Patch Design, I can create the patch but it includes every EXE in it, even though they were unchanged. I deliberately updated the version of one or two EXE expecting that the patch will only include the changes from the base install to the new patched install, but it still includes everything, causing the patch to be what I believe to be about 5MB to around 115MB.
I have posted my PatchCreation log. I know I have IncludedWholeFilesOnly set because I want to include the whole file of whatever was changed, not just the differing bits because I have found this to cause problems for our customers as well as in-house testing.
Thanks for any help!
I have posted my PatchCreation log. I know I have IncludedWholeFilesOnly set because I want to include the whole file of whatever was changed, not just the differing bits because I have found this to cause problems for our customers as well as in-house testing.
Thanks for any help!
(5) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 13, 2008
02:18 PM
I did not mention in the last post that I was code signing my MSI, setup and all my code files (EXEs and DLLs). I tried to do a build and patch without code signing all my files (still signing the MSI and Setup and Update) and I found that even with IncludeWholeFilesOnly, my patch shrinked in size from 115MB to under 4MB and still patched exactly what needed to be patched.
It seemed like the patching API is doing a bit level comparison for the patch, even though I wanted to include the whole file. All of my EXEs and DLLs are versioned so I thought that the patching API would only look at the version difference between my base setup project and my patch setup project to see if it needs to be included or not.
Can anyone please verify this? Is this a bug in the patching API (it seems to point in that direction since the ability to code sign files inside the package is new to InstallShield 2008)?
It seemed like the patching API is doing a bit level comparison for the patch, even though I wanted to include the whole file. All of my EXEs and DLLs are versioned so I thought that the patching API would only look at the version difference between my base setup project and my patch setup project to see if it needs to be included or not.
Can anyone please verify this? Is this a bug in the patching API (it seems to point in that direction since the ability to code sign files inside the package is new to InstallShield 2008)?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 13, 2008
05:42 PM
I have seen similar behavior but the problem that I have seen is that all our packages are compressed. So to create a patch we have to create an uncompressed version of the files. Well, when we uncompress the files the file size varies by a byte or two. This causes all the files in the setup to appear as if they were changed and therefore flagged as part of the setup.
If we create an uncompressed version of the original setup, and an uncompressed version of the new setup, then use those two MSI packages to create the patch then the results are much different. Only the files that are truly changed are included in the setup and the package is very small - just like you are seeing.
I don't think this is a digital signing issue because in both tests we always signed our files.
I am fairly certain this is an issue with compression / decompression.
If we create an uncompressed version of the original setup, and an uncompressed version of the new setup, then use those two MSI packages to create the patch then the results are much different. Only the files that are truly changed are included in the setup and the package is very small - just like you are seeing.
I don't think this is a digital signing issue because in both tests we always signed our files.
I am fairly certain this is an issue with compression / decompression.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 14, 2008
09:47 AM
That is exactly the way I am doing it. For the base installation, I have 3 releases: a compressed CDROM (for CDROM distribution), a compressed Network Install (for online distribution), and an uncompressed Network install that is specifically used for building patches. All three releases have digitally signing on.
Then I copy the project, make my changes that should be included in the patch, build the uncompressed Network install and do a patch between the base uncompressed and the new uncompressed releases.
The patch is huge, and the log states that it includes all the EXEs and DLLs that haven't changed.
Then I copy the project, make my changes that should be included in the patch, build the uncompressed Network install and do a patch between the base uncompressed and the new uncompressed releases.
The patch is huge, and the log states that it includes all the EXEs and DLLs that haven't changed.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 14, 2008
10:07 AM
How about if you take a copy of the original and just replace the files that have been updated in the copy of the original? Would that work? I believe that is the process we use right now since when we rebuild it restamps all the files with a different version number and date.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 14, 2008
12:52 PM
I'm not sure what you mean. The copy of the project I make still points to the same source EXEs and DLLs, only the newly updated ones are copied into this source folder, overwriting the old file.
Ex. My Source folder where InstallShield points to is C:\MyProduct\. I have a program in there called MyProgram1.exe (version 1.0.0.0) and MyProgram2.exe (version 1.0.0.0) and I build my project with this (code signing the two EXEs in the process). I then copy my project and call it my patch project, update MyProgram1.exe to 1.0.0.1 and overwrite it in c:\MyProduct\ and build the new patch project and then after create the patch. The patch includes both MyProgram1.exe (1.0.0.1) and MyProgram2.exe (1.0.0.0) if I code sign the files. If I don't do any code signing (in the original project and the patch project), the patch will only include MyProgram1.exe (1.0.0.1).
Ex. My Source folder where InstallShield points to is C:\MyProduct\. I have a program in there called MyProgram1.exe (version 1.0.0.0) and MyProgram2.exe (version 1.0.0.0) and I build my project with this (code signing the two EXEs in the process). I then copy my project and call it my patch project, update MyProgram1.exe to 1.0.0.1 and overwrite it in c:\MyProduct\ and build the new patch project and then after create the patch. The patch includes both MyProgram1.exe (1.0.0.1) and MyProgram2.exe (1.0.0.0) if I code sign the files. If I don't do any code signing (in the original project and the patch project), the patch will only include MyProgram1.exe (1.0.0.1).