Hi all,

I have what I think are primarily Windows Installer questions and not really specific to IS 2010.

In our install, we make use of the DuplicateFile table to get some dependency files from one installed location to many other areas of our software's file system. This seems to work well for us during initial install and major upgrade, but doesn't seem to work so well during a Patch.

I have a few ideas why, but not really certain. I would just like to understand it a bit better.

We have a version in the field with FileA.dll installed to a certain location. It is found in several different locations via the method described above. Now, we need to patch this release with a new folder that will require a copy of FileA, but FileA hasn't changed. My thinking is that at patch runtime, FileA will not be marked for install since it hasn't changed, thus no duplication to the new area.

I then thought I should just mark the file as always overwrite (puts max file version in File table), but that didn't seem to work either. I did notice that two of our dependency files were already marked as always overwrite so I thought those should have been duplicated to the new directory during patch install, but they were not.

My thinking on this part of it is that when the patch is actually being built, it sees the files that are marked as always overwrite as not really being different so they are not actually included in the patch. My guess is that trying to 'trick it' to get DuplicateFile copying to work doesn't work!

My next thought was to tie the duplication to a new component that will definitely be marked for install. This didn't work either. I thought this would have worked but since the file to be duplicated wasn't actually install, that doesn't work.

What I did was simply add the dependency files directly to the new location then created the patch, which works fine.

I was just wondering if my thinking is correct on these issues and, if not, what I might be doing wrong.

Any thoughts, comments, help, info is greatly appreciated!
0 Comments   [ - ] Hide Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
Answer this question or Comment on this question for clarity


I've always used patching for exactly that purpose - patching. That is to say, as patches are understood by the development community. What you are describing - to me, at any rate - is a minor update.
Answered 11/02/2011 by: VBScab
Red Belt

Please log in to comment
Yes, true, but the way we do things around here forces me to jump some hurdles. It would take all day to describe, but trust me, its not conventional by any means.

We don't patch all that often either so its not that big of a deal. I can get it to work the way I need, but I was just wondering if I was doing something wrong with the DuplicateFile table.

Anyway, patches can be used to push Major Upgrades these days so they can virtually be used for anything.
Answered 11/02/2011 by: Superfreak3
Second Degree Black Belt

Please log in to comment
patches can be used to push Major Upgrades these daysDon't get me started on that nonsense.

Has anyone found any explanation as to why this method is being used? Maybe I'll browse the MSDN blogs and see what I can dig out.
Answered 11/03/2011 by: VBScab
Red Belt

Please log in to comment