cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
loyalp
Level 5

Dynamic File Linking - Always Overwrite?

I have a source folder of files/folders that is fairly dynamic and can change from build to build. So, I've used Dynamic File Linking to just have the install grab the content from there for packaging.

Is there some way to make sure that all of those files in that Component are set to "Always Overwrite" on the target machine?
Labels (1)
0 Kudos
(8) Replies
MGarrett
Level 6

Yes, In the Components view you should be able to set the Overwrite type to "Always Overwrite files without version or date consideration". This setting is the same whether the component uses dynamic file linking or not.
Or am I misunderstanding your question?
0 Kudos
loyalp
Level 5

MGarrett wrote:
Yes, In the Components view you should be able to set the Overwrite type to "Always Overwrite files without version or date consideration". This setting is the same whether the component uses dynamic file linking or not.
Or am I misunderstanding your question?


I don't have any sort of setting like that. My only component option is "Never Overwrite" with a Yes/No setting which does not accomplish what I need done.
0 Kudos
Christopher_Pai
Level 16

That setting doesn't exist in a basic MSI project and InstallShield only seems to expose file table "version lieing" for static linked files not dynamic linked files.

I can only think of a couple ways to skin this cat:

1) If your MSI is exposed ( not compressed inside setup.exe ) and not digitally signed, you could have some postbuild automation that updates the File table records for the dynamically included files.

Otherwise.....

2) Create a merge module project for the files you want to dynamically link. Build the merge module and then use post build automation to fix up the file table. Then build your MSI consuming the merge module.

Also if all of your files in your install need to always overwrite, you could consider overriding the default file versioning rules by setting REINSTALLMODE to AMUS
0 Kudos
loyalp
Level 5

Ah, I forgot to specify this is an InstallScript MSI project, but I'm sure everything mentioned is likely the same.

REINSTALLMODE might just do the trick.....
0 Kudos
knoepdan
Level 6

Is there no other way (maybe in installShield 2010)? in our basic msi project, we got many components and even more files that are dynamically linked (more than 300) of which most but not all should always be overwritten.
If not possible, i guess that would certainly be a good feature to be included in the next release. it would really really really help me right now.
0 Kudos
AlexandrV
Level 3

I need it too, I had to remove my files that should be always overwritten from the components and add them as the support files and copy them manually using xcopy. It does the work but didn't solve the problem with uninstallation.
Why always overwrite and dynamic file linking feature is still not supported by InstallShield? Is it too hard to implement?
0 Kudos
dave_wilton
Level 2

I had an issue with dynamic files not shipping, although I suspect all files in the feature were not shipping. This was because one of the components in the feature had been removed
0 Kudos
jboaz123
Level 2

function OnBegin()
begin

   if (REMOVEONLY = 0) then
      // backup your configuration
      DeleteDir(INSTALLDIR, ALLCONTENTS);
   endif;

end;

function OnMoved()
STRING szKey, svFilePath;
begin
   if (MAINTENANCE) then
      if (REMOVEALLMODE = FALSE) then
         // DefaultFeature_Installed is not going to be execute so
         // Run your methods here;
      endif;
   endif;
end;

0 Kudos