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

AlwaysOverwrite changes attribute

I have lots of unversioned files (1000's) in my basic MSI which during installation did not get updated.

I therefore did a basic test and selected one component's files, selected them all, right clicked to the properties tables and selected just the alwaysOverwrite option.

Rebuilt the MSI and tested again, the updated component files were still not updated.

On investigation the action of selecting AlwaysOverwrite on the files table updated the Version to 65535.0.0.0 (as expected), but also updated the attributes column with 0.

It appears the 0 in the attributes column seems to prevent the AlwaysOverwrite, removing the 0 attribute allowed the Overwrite.

Am I correct in this diagnosis or smoking my socks?

If I use the Automation object and just set the file.Version = 65535.0.0.0 the attributes column remains as a null.

What should it be?

I don't have the benefit of using companion files, unless I create some dummy dlls (200+)

Size of full MSI is just under 20,000 files.

Regards

Neil
Labels (1)
0 Kudos
(2) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

If this is a small update or minor upgrade where files are not being updated to their new versions, the information in the following article should be investigated:
InstallValidate Nulled Out My Request (Part III)

Note that the Attributes column of the File table is populated at build time based on how the ISAttributes column of the File table is set in the project. Specific values in ISAttributes will allow values set in the project to override what would normally be set at build.
0 Kudos
NeilHayes
Level 5

Thanks Josh......not that that helped.

In fact this is a new installation but has some different aspects.

Take 2 machines, one a server and one a client.....both machines already have software installed via XCOPY (those where the days).

The server software has the ability to "self heal" (developed well before Windows installer) the client machine when newer software is installed on the server.

So for example an Unversioned file on the client could be deleted then recreated from the server (Giving the created date and modified date as now).

I have the task of creating a new MSI that now updates all machines.(Windows Certification) So for all purposes this is a new installation package and not an upgrade or update.

As I don't have any direct companion files, I thought I'd make all the components that consist of unversioned files as "AlwaysOverwrite" so using automation I changed the Version.

I can see from the installation log the action = null, the other components of the same feature get installed....... so I need to track down why.

Neil
0 Kudos