visualdude
Posts: 5
Joined: Fri Mar 07, 2008 9:05 pm

Running patch opens windows file dialog

I have created a second patch for a product. When I try to install this patch the windows Open dialog shows looking for a executable, but there is no name listed. I tried including the previous patch in the patch replace list and also tried adding it as a target in the image family.
My initial updated installation was an update of the previous version, so I recreated the updated installation of the original installation, then created the patch. I then tried adding the previous patch to the replace list and also tried it as a target in the image family. I also tried installing the installation used in the first patch creation, then tried applting the new patch. Each time the dialog opens.
My AI updated to version 6.2 just before I began working on this patch, but I rebuilt the first update installation and patch and they work fine. I noted in ORCA looking at the original installation with the patch loaded that there are Actions in the CustomAction table calling functions in lzmaextractor.dll which is in Binary table, it is not in the previous patch. There are also some new entries in the _Validation table for AI_FirewallException and AI_FirewallOption.

For what it's worth, this is my first patch for a patched installation. That is why I tried the patch against the updated installation for the first patch. I've used easier programs for creating patches, though I hope once I have a solution to this, I will be just as happy with AI.
visualdude
Posts: 5
Joined: Fri Mar 07, 2008 9:05 pm

Updated information

I tried updating the previous patch project rather than creating a new project, adding the new Upgraded image and dragging the old upgraded image and target to it. This didn't seem to help or hurt anything.

On a hunch, I browsed to the msiexec.exe in the Open dialog and opened it. The patch ran as expected. Why in the world is this patch looking for msiexec and how do I correct it so it doesn't look for it. Obviously I can't release my patch like this.
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

Since Advanced Installer is a MSI-based installation packages authoring tool, it helps you create Windows Installer packages (MSI, MSP, MSM). Also, a Windows Installer package (including a patch) needs "msiexec.exe" (created by Windows Installer) to run.

Note that the packages created with Advanced Installer need Windows Installer 2.0 or higher installed on the target machine.

In your case, perhaps the file association for MSP files has been corrupted. Usually, a MSP file is recognized by Windows and it is launched automatically. Please try this on other machines and let me now if the problem persists.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
visualdude
Posts: 5
Joined: Fri Mar 07, 2008 9:05 pm

Not a target computer issue

Please note that the recompiled first patch worked fine.

I was able to get around this by opening the latest upgraded source MSI with ORCA and remove references to lzmaextractor.dll and AI_SETUPEXE, deleted the RegLocator table which was setting AI_EXE_PATH_CU and _LM variables, and deleted references to those variables. The patch I compiled after editing works fine. Could this have anything to do with extracting the installation files from an exe. I don't think so because I also extracted the previous patch and original installation from exe files. Also, my projects use CAB files, rather than LZMA compression, so I don't know why the latest installation would have reference to something it is not using. I plan a creating a test installation to see if the installation msi includes these values again. I will post the results.
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

I'm not sure I understand what you are trying to do. Can you please give me more details about this?
Could this have anything to do with extracting the installation files from an exe.
Can you please give me more details about this? What EXE are you referring to?

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
visualdude
Posts: 5
Joined: Fri Mar 07, 2008 9:05 pm

Installation scenario

Original installation - compiled to bootstrap exe (to use serial validation)

Updated installation1 - also exe
extracted installations (msi, data.cab, ini) to a versioned (V0, V1) folders.
Created patch project, using versioned folders for source msi (V1) and target msi (V0). This patch worked fine. Even when this patch was recompiled using AI 6.2, it still installs correctly.

Updated installation2 - also exe
extracted installation (msi, data.cab, ini) to another versioned (V2) folder.
Created patch project, using msi from new versioned folder as source msi (V2) and tried both the original msi (V0) as well as the first updated msi (V1) for target msi. This patch displays the open dialog window when run. I removed the values mentioned in my previous reply, from the source msi used for this patch, which then allowed the patch to install correctly.

I'd be happy to send you all three MSI files for evaluation.
At this point I believe that it is the updated installation2 that caused lzmaexptractor to be included, even though it is not used. The subsequent patch is looking for it(?) even though it is not part of the original installation. I don't know why opening msiexec satisfied the installation.
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

Most likely this happens because the MSI packages are built with different versions of Advanced Installer (the patch build shows a warning about this). Note that a new Advanced Installer version will include new code compared to an older version, therefore some conflicts may appear when you try to build the patch.

Please make sure that the new package is built with the same version of Advanced Installer you used to build the old package and let me know if the problem persists.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
visualdude
Posts: 5
Joined: Fri Mar 07, 2008 9:05 pm

Code based on version

I guess that leaves me having to either use 6.1 and 6.2 side by side, or edit the MSI for each update that will be created into a patch.

I'd like to request that you investigate the inclusion of lzmaextractor in the MSI, even though it is not selected for in the media setting. At this point, it is not likely we will renew our maintenance (it expires in 15 days), since we will have to use an older version for the purpose of patching. We simply can't upgrade client installations just because of a minor version change in the installer software.
It was patching issues that brought us to you from InstallShield, at least I have the option to manipulate the MSI package. I hope that you will be able to correct/add the logic that determines when to include the lzmaextractor. I'll probably also test creating just a MSI installation to see if it is included.
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

Please note that this is a normal behavior. A new Advanced Installer version includes new features, improvements and bugfixes. When you build the upgraded MSI package with a newer version, it will contain new elements which are not present in the target package.

Since the patch rules are very restrictive and building a Windows Installer patch is a "delicate" process, it is not recommended to build a patch by using packages created with different versions of Advanced Installer.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”