Unable to patch

Got a problem you cannot solve? Try here.
PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Unable to patch

Postby PetriSuominen » Fri Aug 12, 2016 5:42 am

OK, it is now time to publish the first patch of my original install.

So I created a project (for release 1.1) that was based on the previous project (Release 1.0) and I understood all that was required to generate the patch was to add a reference to the old installer, and then click the build patch button.

Well that failed as it started to complain about a missing variable in the script that scans for Prequisites, more specifically the one that would install SQL Server 2014 (or check for it). I was able to circumvent that by encapsulating that bit in a "Compiler if Variable BUILDMODE not Equals PATCH" segment.

OK, now the patch compiles.

But when I actually try to apply the patch, I get an error about weird file name (not one that I included in any of the projects) not being found in a cab file with a cryptic ID. Then the patch simply fails.

This was supposed to be a simple exercice according to the documentation, where did I manage to screw it up ;-)

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: Unable to patch

Postby FrancescoT » Fri Aug 12, 2016 10:42 am

Dear Petri,

I suggest you to have a look at following topics, where are available useful information on how to avoid common errors with patch creation.

It's also available a ready to use sample with the second link below.

- http://www.installaware.com/forums/viewtopic.php?f=2&t=9656&hilit=patch
- http://www.installaware.com/forums/viewtopic.php?f=2&t=8697

Hope this helps you.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Re: Unable to patch

Postby PetriSuominen » Sat Aug 13, 2016 1:21 am

I read those before I started, and I think I did follow them.

There is one point of confusion though, it says that the version numbers must be identical.

My base version is 2.6.456, the patched version should be 2.6.468. Does that mean that I cannot change the version number in IA from 2.6.456 to 2.6.468 ?

Regarding my earlier problem with prequisites, I tried applying the 2.6.468 full install on top of 4.6.456, and it actually worked. Only thing is that it detected the prequisites and wanted to uninstall those first. Then it didn't actually do it... How do I skip that bit all together ?

I would be fine in distributing full installs only, as it would be logistically simpler. In this day and age the bandwidth is no longer an issue so the reason for having a patch is a bit obsolete anyway. But when I apply a full install on top of the old one, does it follow the maintenance logic in the script or something else ?

PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Re: Unable to patch

Postby PetriSuominen » Sat Aug 13, 2016 2:33 am

Essentially, I am having this same problem reported 7 year ago, with the exception that everything is created with the same version of InstallAware.

viewtopic.php?t=5097

There is no resolution in that thread...

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: Unable to patch

Postby FrancescoT » Mon Aug 15, 2016 12:06 pm

Dear Petri,

- did you read my replies from the links I posted?
- did you have a look at the sample project included with one of the link I posted?

The answers to all your questions about Patches ARE ALREADY THERE.

PATCH PROJECT AND BASE PROJECT MUST BE IDENTICAL!!!!
-------------------
by default a full installation will always be run after the differing application version has been un-installed automatically. This is the default Windows Installer Engine behavior.

In case your full install runs in maintenance mode, instead to run in update mode as expected, please check if by mistake you are not allowing the automatic regeneration of the REVISIONCODE on rebuild.

The REVISIONCODE is used to uniquely identify a setup package. You can leave to InstallAware the automatic re-generation of this code every time your project is built (""recommended"" ... SHIFT+CTRL+F11 ->then, Output node).

Please refer to the IA documentation for more details.

Hope this helps you.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Re: Unable to patch

Postby PetriSuominen » Tue Aug 16, 2016 2:23 pm

Hi Francesco,

I did read them all, and I did have a look at the sample. And as far as I can comprehend, I am using the same principle. Yet I still get the compile error.

The only real difference between the sample and my project that I can think of, is the fact that the sample is based on a single executable project, where as mine is a web deployment project. Is that somehow relevant ?

br,

Petri

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: Unable to patch

Postby FrancescoT » Wed Aug 17, 2016 6:39 am

Dear Petri,

a patch is basically based on the binary differences between the projects (delta differences).

Due of this to successfully generate a patch, each setup part of the patch references has to include all files ...otherwise the patch build process cannot generate any difference.

That said, of course you cannot release a patch over a base setup that doesn't include its file because a Web Based exe.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Re: Unable to patch

Postby PetriSuominen » Thu Aug 18, 2016 2:24 pm

Right, bummer...

OK, what options do I have ?

The reason I wanted to release a web based setup rather than a single exe, was that there are a lot of prequisites that I need to include, such as .net frameworks, Crystal Reports etc... If I embed all of those into a single EXE it is going to be a rather big one. Now some of those dependencies are already included in Windows 10, but not Windows 7 which also needs to be supported, so that means an unnecessary big distributable if I release simply a single EXE.

Now is my chance to fix this, as I could distribute a new install that takes another strategy.

My updates never ever touch the dependecies, only the files I create my self. So I could simply always do a patch that simply replaces the files I did originally installed with a newer version. An uninstall/install approach is not desirable, as that would erase certain registry entries etc.

Is there an easy way to generate an install program that pays no attention to the older install other than check if it has been installed, and then simply drops newer files into the old $TARGETDIR ?

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: Unable to patch

Postby FrancescoT » Fri Aug 19, 2016 11:51 am

Dear Petri,

the problem are not the Application Runtimes, you can continue to distribute them as Web Media Blocks. These are not really part of your installer, they are just separate setup packages that get executed from your installer.

Instead you need that all the files that get effectively installed by your setup ("Install Files" Commands), are included as OFFLINE CONTENTS and not as Web Media Blocks with the generated Web Compressed EXE.

"If you specify an empty string in the Web Media Block Name field, an OFFLINE CONTENT block will be defined instead. This block will not be converted into a downloadable web media block, but instead packaged with the main setup executable itself. Use this option to include files which you will always install in your main setup program."

For more details, please consult the IA documentation about "Web Media Block".Hope this helps you.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

PetriSuominen
Posts: 21
Joined: Mon Nov 05, 2012 12:40 am

Re: Unable to patch

Postby PetriSuominen » Sat Aug 20, 2016 1:44 am

Then the fact that I did a Web installer is not the source of my problem. The only thing I install as web media blocks are the prequisites. Everything I've authored, get's installed as offline media.

The main things I fail to comprehend are:

1. Why am I getting a compile time error when building a patch complaining about an undeclared variable in the SQL Server 2014 prequisite detection script (the one authored by InstallAware) when the installer itself compiles just fine. The SQL server is embeded as Offline media as it is something that most of my users need to install anyway.

2. If I circumvent #1 by compiler if directives, I get the patch to compile, but then when I try to use it it complains about a missing file (the filename is something that does not directly ring a bell, allthough a similar sounding file is part of my project, and included in the original and patched versions). I attached two screenshots of the error as I get it now, they are in Finnish, but I'll try to translate ;-)

Näyttökuva 2016-08-20 kello 9.35.07.png
Näyttökuva 2016-08-20 kello 9.35.07.png (101.25 KiB) Viewed 6584 times
This one says that C:/Config.Msi/PTA26.tmp cannot be updated because it has been already updated by other means. I don't have a clue about what this file is.

Näyttökuva 2016-08-20 kello 9.35.27.png
Näyttökuva 2016-08-20 kello 9.35.27.png (102.07 KiB) Viewed 6584 times
This one says that Intero7e17cInterop.Scrip cannot be installed because it is not found in PCW... This may be due to a network error, error reading a CD or corrupt package. There is no such file in any of my packages, but the original install does include a Interop.Scripting.Dll file. This is included in the patched project as well.

FrancescoT
Site Admin
Posts: 5361
Joined: Sun Aug 22, 2010 4:28 am

Re: Unable to patch

Postby FrancescoT » Mon Aug 22, 2016 12:40 pm

Dear Petri,

for what you say it clearly exist problem with your script code. I suggest you to verify the conditional compiler directives that are present in your main script (Compiler Variable If BuildMode Path). For sure you are including part of your script code which should not be included with a Patch Build (Eg. Prerequisites).

You may compare your code, with the patch sample (see the link I posted previously) or with creating a new project from scratch.

Hope this helps you.

Regards
Francesco Toscano
InstallAware Software

White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Publications - http://www.installaware.com/publications-review.htm
InstallAware Help -F1 anywhere in the InstallAware IDE


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 111 guests