Page 1 of 1

Patches and moving your project directory

Posted: Tue Aug 25, 2009 8:56 am
by jbeyer
Hi

I have a fairly complex setup for our application.
As a result I've created a “Datastructure” sub directory under the InstallAware root directory for the application. The "Datastructure" contains the folder layout and data files for the application and I update the files in these directories as required for each new setup.
When I started the setup everything worked fine and as long as I use the original setup and data structure directories I can create patches and upgrades without a problem. As soon as I copy or move my project directory to a different location InstallAware can no longer create patches with only the differences in the files. The patch size becomes the same as the full installation.

It doesn’t make sense as this will imply that you can only build patches from the machine and directories you created originally. This in turn is a massive business risk for us.

Is there something I might be overlooking or some reason why this would occur?

Thanks
Johan

Posted: Wed Aug 26, 2009 1:35 am
by neillans
Check the created / modified time stamps on the files -- if these get changed the new file detection breaks.

Posted: Wed Aug 26, 2009 1:56 am
by jbeyer
Thanks Andy

I thought that might be the case.
This poses a problem as we use SVN for our repository and even though I can set it to keep the last check in/modified date when I do a check out it does not keep the directory timestamps. My data files are located in sub directories under the project directory I assume that it will cause the same problem if the data file sub directory timestamps change but the file timestamps stay as per the original timestamps.

Would this mean I need to put all my data files +/- 2900 files directly under the project directory instead of in sub directories under the project directory?

Regards
Johan

Posted: Wed Aug 26, 2009 2:10 am
by neillans
Its certainly a possibility; I would recommend testing outside of SVN for now to make sure it isnt touching the timestamps :)

Posted: Mon Aug 31, 2009 9:16 am
by jbeyer
Ok, I've done quite a few tests and this seem to be the problem.

I have seperate include scripts for different products in my setup.
Each include scrip gets its files using a script such as this:
Install Files #PROJDIR#\\Data Structure\\xxx\\*.dll to $TARGETDIR$

If I move the InstallAware project to a different folder different GUIDs or IDs to that of the original setup for each script is generated. See attached file with a snapshot of the base package GUIDs/IDs and the Resulting patch GUIDs/IDs

As a result I cannot build patches to our applications other than on the machine and exact location where the orriginal project was created.

Why would this happen and what would the solution be?

File Attached:

Diffs.jpg

Posted: Tue Sep 01, 2009 12:04 am
by MichaelNesmith
Unfortunately it might not be so easy to work around this one. InstallAware's way of generating components depends on file paths that are resolved at build time. This is immaterial for setups, but patches are affected as the MSI patching mechanism can get confused when trying to resolve differences between packages.

You could use the subst OS command to create a virtual drive that points to a particular physical path on your machines. Referencing only the subst'ed virtual drive as your root across a wide variety of physical machines would keep your projects portable and patch compatible.

Posted: Tue Sep 01, 2009 12:48 am
by jbeyer
Thanks Michael,
I'll look into your suggestion.