cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ISNoob
Level 6

Minor Upgrade - Files not upgraded

Hi I am desperate for some help with the problem detailed below.
I am trying to create a patch using .NET Policy files. We have done two successful minor patch upgrades, and now I find that the third minor patch upgrade is troublesome. Two files are failing to upgrade.
The policy file contains the following information for the file (its the same for the other just a different filename):-



The previous version of the file RegBRW was 8.4.6.8 - this has been installed on the target machine.
The 8.4.6.0 is the base version (the very first file version).
So the policy file should detect that 8.4.6.8 is < 8.4.6.10 so it should replace the file with the new one 8.4.6.10. However when I try to create the patch, the following message is displayed:-

ISDEV : error Val0004: The file 'policy.8.4.RegBRW.1042919C_B9D9_400B_85FA_D953597CB8FB' in component 'policy.8.4.RegBRW1.1042919C_B9D9_400B_85FA_D953597CB8FB' is different from the file in the previous package, but the key file for this component did not change. As a result, the changed file will not get installed in an upgrade scenario. Place this file in its own new component. d:\vss\client\installshield\main project\previous\previous8\PRODUCT.msi.
---- THE MESSAGE ABOVE SUGGESTS I CREATE ANOTHER COMPONENT AND SET THE FILE AS A KEY FILE, THIS IS NOT POSSIBLE, IT WORKED AS ITS SET BEFORE SO SHOULD WORK SAME WAY NOW. ---

Followed by the message :-

Val0010: The data in component 'RegBRW.1042919C_B9D9_400B_85FA_D953597CB8FB' differs from the previous setup. However, this component will not reinstall in an upgrade scenario. Therefore, the changes will not be applied to the target system during the upgrade. Table: 'MsiAssemblyName' Record: 'RegBRW.1042919C_B9D9_400B_85FA_D953597CB8FB;FileVersion;8.4.6.10' d:\vss\client\installshield\main project\previous\previous8\PRODUCT.msi.

Is this problem occuring because the version of the file is now 8.4.6.10 - where 10 is a double digit number? Previously I have had no problems in generating a patch where the last number has been under 10.

I need this to be a minor patch upgrade and I need a resolution or some pointer by end of play tomorrow.
Thanks in advance,
Please help.
Labels (1)
0 Kudos
(4) Replies
ISNoob
Level 6

Anyone come across this??? Installshield???
0 Kudos
ISNoob
Level 6

Ok, I have additional information.

When I decremented the number from 8.4.6.10 to 8.4.6.9 there were NO error messages and the patch was created successfully.

Porblem is I can do this for one of the files because the file on the target machine has the file version 8.4.6.8 so moving to 8.4.6.9 is fine.

However I can not do this for the other file since the file version on the target machine is 8.4.6.9 and the next one will have to be 8.4.6.10.

I am struggling here....

Would moving to Installshield 2009 solve this issue? I have not trialed it with installshield 2009 because I dont want to mees my project up... But we will move eventually.
0 Kudos
MichaelU
Level 12 Flexeran
Level 12 Flexeran

I would not worry too much about VAL0004 messages. They were based on an old understanding of MSI's behavior which is now incorrect, and what you describe sounds like a lexicographic comparison instead of a real version comparison. Unless your upgraded component actually has a lower version recorded for its key file than the one stored in the previous MSI, other files will get a chance to update. The validator is expected to be fixed in our next major release (after IS2009).
0 Kudos
ISNoob
Level 6

We solved this problem by building the version of the dll to be greater than 8.4.6.9 so rather than go from this to 8.4.6.10 (which was causing the grief) we versioned the file 8.4.61.00 from 8.4.6.9 This worked fine. It performed a minor upgrade.

Had we started off with 8.4.6.00 (or 8.4.60.000) I think we would not have a problem when it came to 8.4.6.10.
0 Kudos