Jun 13, 2022
06:52 AM
So for anyone having the same issues as described here info FYI. After creating a ticket I got the response that: QuickPatch does not support .NET COM Interop dll's now. The option "COM extraction" only applies to 'pure win32' COM. So when checking this option you get errors during build that no COM info cold be extracted. The support for .NET COM Interop in QuickPatch is now added as a feature request and hopefully implemented in future InstallShield version ASAP. The other issue, about not able to import reg files, is also a lacking QuickPatch feature. There is no reason why this would not be available. In fact this is a must have feature as manually adding registry data is mostly too much work and prone to mistakes. The "Import reg file" is now also added as a feature request. In the end, not having one of both features makes QuickPatches and .NET COM Interop nearly impossible.
... View more
Jun 13, 2022
06:44 AM
Thanks for the reply. After more extensive search I found the reason why all files were added to the patch build. To limit the files you need to set the previous build info in the release settings. When pointing to the previous build when creating a new release build and then use that new release build als latest build in the patch design, the resulting Update.exe only contains the changed files. So there is no problem now, but maybe it is a good idea to somehow indicate this clearly in the design view information as this was not very clear.
... View more
Jun 08, 2022
12:56 AM
I'm trying to use "Patch Design" instead of QuickPatch project to deliver a small update to an existing installation. The requirement is that the patch setup will be small and contains only those files which have changed. (With the QuickPatch project it is easy as you manually add files which must be part of the patch setup. So you are sure that no other files are part of the deliverable. So I took the MSI for the product to be patched as "previous". I created a new build using the original project where only a few files are changed. This is the "latest". As I can not see which files will be taken to be part of the patch installer I build it completely. During build it seems almost all files from the latest build are taken. But not all. In my case here, instead of a few files to be added I see about 800 files being compressed and put in the patch build. I checked a few files to see why they are added. For all files there is no difference between the previous and latest build. The file size, date, location etc etc are 100% identical. But still they are part of the patch. Which results in a setup of 500Mb which would be only 100Kb when only the changed files were taken. Is there an explanation? I would expect that InstallShield does a bit-wise check to determine if the file has been changed. And strangely some files are indeed not added. But they are of the same type and are indeed identical. But somehow those are correctly identified as changed where other files in the same situation are taken into the patch. Is there a setting to change the behavior how files are checked? Can I change the project so that a patch will actually produce the setup I need? Could it be related to the fact that some components are dynamically linked? In that case, how do I prevent they are added to the patch?
... View more
Labels
- Labels:
-
InstallShield 2020 R3
Jun 08, 2022
12:33 AM
So it seems that QuickPatch project does not support upgrading .NET COM Interop dll's which seems ridiculous. When creating a build, the build process in "normal" MSI projects takes care of the registry information as it is extracted during build. We have two options here: COM extraction and .NET COM Interop extraction. But QuickPatch only offers one option, the COM extract. So a changed dll is indeed part of the patch and will be copied to the target machine when installed. But the registry is untouched as there is no registry info available. This is just a missing feature which can easily be added to the product. The action on build should be the same for normal MSI projects and QuikPatch projects. Then you would say, as I did: well, if InstallShield does not add registry info, just add this info in the QuickPatch Registry section. And now comes the funny part: QuickPatch project does not offer a "Import registry file". In all other project types you are able to import REG files which are then added to the registry section. But QuickPatch let you only add, delete, edit keys one by one. There is no option for import. So to add the registry info yourself you need to enter hundreds of registry keys by hand, depending on the dll's COM interface. So that option is also blocked as it is impossible to enter it all manually. Did anyone here find this issue out already and found out that QuickPatch is just an afterthought in InstallShield? This
... View more
Jun 02, 2022
03:03 AM
Hi, I am using QuickPatch project (InstallShield 2020 R3 SP1 premier edition) to update a specific component (dll) from an old to newer version on a target machine. The dll is a 3rdParty .NET COM Interop component. The application which is patched uses this component as COM. The original MSI project has this dll and it is a KeyFile and in the .NET settings the option .Net COM Interop = Yes In the QuickPatch project I added to the file list a newer version of this dll. But when installing the patch on a system, the dll is indeed replaced but the application gets an error when trying to use it. The object is not found. I see that the registry still has the old COM interface. So it did not register the new component. After inspecting the build log of the QuickPatch project I see no errors. I see nothing special in the installation log. So I changed the QuickPatch project and checked the option "Extract COM information". Then I see this in the build log: Extracting COM data from 1 component(s) ISDEV : warning -4354: The build was unable to extract COM information from the file D:\GITMANUAL\RISGITMANUAL\Packages\RISGdPicture\GdPicture\GdPicture.NET.14.dll in component GdPicture. Please ensure that the file is self-registering and verify that the self-registration process does not fail. What is wrong here? I can not get this dll patched and registered on the target machine. Is this a bug in InstallShield? Did I set the properties wrong? Or are .NET COM Interop dll's not supported in QuickPatches? Any help is welcome. At this point I'm stuck and have to idea where to find the issue and a solution.
... View more
Labels
- Labels:
-
InstallShield 2020 R3
May 25, 2022
12:18 AM
So I continued and am experimenting with QuickPatch project to update the product. This is working fine. I am able to specify which wiles needs updating and the version number of the product can be changed or not, depending of the needs. Also uninstalling the major version (with the patch) is possible. The only thing which does not work (yet) is to manage registering COM dll/ocx. One dll is a .NET COM interop and the other one a "normal" COM dll. It seems that for the .NET COM dll we need REGASM to register as the other one uses regsrv32. This is the case: The original installer as two dll's which must be updated with the QuickPatch. I added them to be updated and parked them as COM in the QuickPatch settings for those files. But after the QuickPatch is installed I get error in the application that the component is not registered. What you do manually is: Unregister the existing dll's Copy over the new dll's Register the new dll's Should I do the same in QuickPatch? So mark the existing files as DELETE. Then add all dll's as new files and register? Or should just updating the files be enough and set them to register? Or am I able to add a new script to do this?
... View more
May 19, 2022
03:52 AM
We deliver our product using a InstallShield setup.exe
It is a fairly complicated project which has a GUI to install components, some custom scripting and registrations of COM etc etc. The setup is huge, about 1.3 Gb and contains lots of files.
We also deliver hotfixes to customers.
At this point we do this manually. So we fix defects in house and the affected files are put into a ZIP with copy instructions and sometimes extra steps to perform at customer site.
Mostly a hotfix only contains a couple of files which have to be copied to the installation folder of the product and replace the existing ones. Sometimes we need to unregister an old COM component, copy a new version of it and then register.
As this is manual work for developers here and manual work for the admins at customer sites, we would like to use InstallShield to deliver the hotfixes as a setup.exe. So make it easier for customers to apply a hotfix just by starting a setup.exe.
Goal is that the developer can easily put fixed files in the project, specify what to do with them (mostly just copy/overwrite existing files and create a setup which is small (only contains the files to be overwritten).
We do not want to see in installed programs that a patch has been installed.
So the original program (major version) is visible in installed products but the patch will not.
So there is no need to have an uninstall option for the patch. You can install the major product version (full setup) and on top of that a patch setup and be able to uninstall the major product when needed.
You could rerun the same patch setup multiple times which just does what it is instructed to, copy files.
A new hotfix (on top of the previous one) will just copy the set of files without bothering about if a previous hotfix was installed or not. Out hotfixes are cumulative, so hotfix 2 contains hotfix1.
I'm lost in all the options in InstallShield to make a good choice how to do this.
I was thinking about a simple project which just copies the files to installation folder and not registering any product changes. So what we normally do manually we let it do by InstallShield.
What are my possibilities? I would be grateful if someone has tips how to start. Thanks.
... View more
Labels
- Labels:
-
InstallShield
Latest posts by drabelink
Subject | Views | Posted |
---|---|---|
195 | Jun 13, 2022 06:52 AM | |
139 | Jun 13, 2022 06:44 AM | |
167 | Jun 08, 2022 12:56 AM | |
218 | Jun 08, 2022 12:33 AM | |
255 | Jun 02, 2022 03:03 AM | |
157 | May 25, 2022 12:18 AM | |
206 | May 19, 2022 03:52 AM |
Activity Feed
- Posted Re: QuickPatch and .NET COM interop fails on InstallShield Forum. Jun 13, 2022 06:52 AM
- Posted Re: Patch Design: what determines a "change" to a file? Why are equal files put in patch build? on InstallShield Forum. Jun 13, 2022 06:44 AM
- Posted Patch Design: what determines a "change" to a file? Why are equal files put in patch build? on InstallShield Forum. Jun 08, 2022 12:56 AM
- Posted Re: QuickPatch and .NET COM interop fails on InstallShield Forum. Jun 08, 2022 12:33 AM
- Tagged QuickPatch and .NET COM interop fails on InstallShield Forum. Jun 02, 2022 03:06 AM
- Tagged QuickPatch and .NET COM interop fails on InstallShield Forum. Jun 02, 2022 03:06 AM
- Posted QuickPatch and .NET COM interop fails on InstallShield Forum. Jun 02, 2022 03:03 AM
- Posted Re: Best way to hotfix an existing product (Patch?...) on InstallShield Forum. May 25, 2022 12:18 AM
- Tagged Best way to hotfix an existing product (Patch?...) on InstallShield Forum. May 19, 2022 03:55 AM
- Tagged Best way to hotfix an existing product (Patch?...) on InstallShield Forum. May 19, 2022 03:54 AM
- Posted Best way to hotfix an existing product (Patch?...) on InstallShield Forum. May 19, 2022 03:52 AM