Page 1 of 1

Patches - how do I set them up

Posted: Tue Dec 05, 2006 6:55 am
by Stephen Ibbs
I am struggling very much with the concept of patches. I have worked through the Help, but it is more the principle that I need help with.

I have a project for version 1 of my application. Since its launch I have altered the main application EXE, so I want to produce a new version 2 full installation (for new customers), as well as a patch from version 1 to version 2 for existing customers. I created a new directory, copied the version 1 project into it, renamed it version 2, altered the project and build settings to reflect the change in folder and the application version number (but did not touch the GUIDs).

My understanding is that I now change one of the GUIDs, and add the project 1 to the Patch reference window. However surely if I send this out to existing users it will overwrite all the tables in which the users had stored their precious data. Also the installation files would presumably be massive as it would contain the code for both a full install and a patch install.

I must have it wrong.

I then thought that perhaps I have got the whole concept wrong, maybe I need to create a brand new project separate from a full version 2 install in order to patch from version 1 to version 2. This new project would then only contain the files that I want patching - in this example just the main application EXE, leaving the tables alone. However if this is a completely new project I can't see how the product, upgrade and revision codes are automatically kept in synch as your Help indicates in the section 'Patch requirements' (and I can't see the 'Change Revision code automatically' option anyway) .

As you can see I am rather lost. Essentially where I am is:

1) I need to send out a patch installation to existing users containing a new EXE (only) that will install and overwrite their existing files EXE

2) I don't want the patch CD that I send out to existing users to overwrite their existing tables and data

3) I need a full installation CD of version 2 to send out to new customers

What do I do?

Thank you for your patience

Stephen

Posted: Tue Dec 05, 2006 9:30 am
by MichaelNesmith
However surely if I send this out to existing users it will overwrite all the tables in which the users had stored their precious data.
I have no idea what you are talking about here and had asked you to clarify this point before. Can you please explain what this means?
I then thought that perhaps I have got the whole concept wrong, maybe I need to create a brand new project separate from a full version 2 install in order to patch from version 1 to version 2.
No, this is wrong. What you need to do is just save your older *built* setups (no need to save the sources), and add them as patch references to your setup project (the project that built your latest version, as well as all older versions on the field). Then click Build Patch!

Posted: Tue Dec 05, 2006 1:42 pm
by Stephen Ibbs
I am sorry if I have been unclear - and I had missed the Build patch option so that answers one of my queries.

My application is a database app, so when they install it they get the EXE and a load of blank tables in which they store their membership records, details of subscriptions etc. My concern was that if I supplied them with a patch update to version 2, it would detect that the empty version 2 table was different to the table on their hard disk - because they have entered records - and over-write it with a brand new blank table.

I think what I had misunderstood was that you simply use the same project. You don't create a new version 2 project. You just preserve the build that has been produced by the previous versions.

I still can't find the Change Revision code automatically option though.

Stephen

Posted: Tue Dec 05, 2006 3:45 pm
by MichaelNesmith
I'm not sure if the table issue is resolved for you - but I'll skip that one in this reply.

The option you're asking about is in the Project Options dialog. Click the Project Menu, and then choose the Options menu item. Then choose the Output node and there it is.

Posted: Wed Dec 06, 2006 6:14 am
by Stephen Ibbs
Many thanks Michael. I think it is now starting to make sense. In Patches I used Add to add a reference to the original 1.0 MSI file. I then clicked on Build Patch and eventually a small exe was created in the Patch subfolder. I tried running this file on a separate machine that had the original version 1 application on it and got the error message

"Please locate your original setup sources to continue operation."

I tried navigating to the application folder but this didn't do any good.

What step have I missed out?

Sincerely

Stephen

Posted: Wed Dec 06, 2006 9:22 am
by MichaelNesmith
Please read the help file topic Patching, subtopic Patch Source Resolution. This seems to be the hot topic these days - look in the forum also for related discussions.