cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Eric_Vanlaeken
Level 4

IS2009 is working differently than IS2008

I have a InstallScript MSI project than I have beeing updating for years now and every next release could do a minor update of all previous releases. This week I've updated my system to use IS2009 premier from now on because I can use the new feature to sign an update package for Vista (that was not implemented in IS2008 yet). Anyway, if I make my new version under IS2008 everyting went well and the Upgrades check compared to the previous version gave no warnigs at all. If I open the project in IS2009, it of course translates the project to a new format and compiles it and the result gives no errors nor warnigs at all. On the other site, if I do an Upgrades check on this build compared to a previous build, it mentiones that it will do a minor upgrade (what is good) but noe I get a lot of Val0004 warnings on this build (warning says that some files are updated compared to the previous build and that the key files are not updated although the files are the same within the components as they were in the previous release). I can not use IS2009 for this reason because I have to do the comparison manually for every component in the project. Does anyone has the same remark on IS2009? (and probably a solution?). Thanks
Labels (1)
0 Kudos
(11) Replies
sandeep_madhu14
Level 6

Hi,
I too have the same problem.. previously we have used IS2008 and now we have purchased IS2009.But It is giving errors and asking for convertion if i open IS2008 application in IS2009.How to solve this problem.
Thanks
Madhu.
0 Kudos
Eric_Vanlaeken
Level 4

Hello,

It is normal that you project file has to be converted to the new IS2009 format. This is NOT the error that I'm getting. It seems that some files in a component with dynamic file selections are getting a new version number but that the (automatically assigned) key file doesn't. This way, the Val0004 error is normal but the question is in fact: why should the IS2009 builder giving some files a new version and in the IS2008 not? I'm still investigating this issue. If someone has the same phenomenon and has a solution for this, please answer this thread.

Greetings,
Eric
0 Kudos
sandeep_madhu14
Level 6

Hi,
We have both IS2008 and IS2009.But we have the Installscript MSI project which is done in IS2008 then the same project how to open in IS2009.once if i open application in IS2009 will the same application can i run on IS2008 again.Will the same consistency will be maintained in IS2009....
Thanks
Madhu
0 Kudos
Eric_Vanlaeken
Level 4

Dear Sandeep,
An allready to IS2009 reformatted project can not be openend anymore in IS2008. You have to decide if you want to use IS2009 or stay with IS2008. Anyway, again, this is not my problem. I want to have an answer on the first question in this thread :confused: . Please, if you have another question, open another thread :rolleyes: . Do you have the same phenomenon?
Thanks
0 Kudos
DebbieL
Level 17

About that Val0004 validation error that you're seeing: There is a problem with Val0004. I described it in post #2 in the following thread:
http://community.acresso.com/showthread.php?t=185296
So, you can probably safely ignore the Val0004 errors in your upgraded project.

I hope that helps.
0 Kudos
sandeep_madhu14
Level 6

Hi,
Up to now we have worked on the IS2008.But now we have purchased IS2009.Hence when i run the projects which are done in IS 2008,in IS2009 It is asking for Convertion ....Icould not Understand why it is asking for convertion...then another issue if i convert it into IS2009 then the same project again I can not run on IS2008.How to solve this problem?????
Thanks
Madhu
0 Kudos
Eric_Vanlaeken
Level 4

Update:
I found out that IS2009 re-creacted a new enty in the MsiHashTable for every dynamic file. I've then replaced the ISWIBuild.dll in the original IS2009 SP2 installation with the one from this link http://community.acresso.com/showthread.php?t=184508 and this re-creation of the entries in this table was gone and the original entries based on the previous build (build with IS2008) was there again.
This way, a lot of my Val0004 errors were gone.

I've seen another phenomenon that could cause the extra Val0004 warnings. For every dynamically selected file in a component the builder makes an entry in the filetable and every directory that is dynamiocally selected gets a new component (with a GUID name).
In IS2009 now, every file that has internally a version number will get that version number in a column of the filetable and that version number will match the one in the file itself.
On the other hand, In IS2008, the version number in the columnin the filetable will not get an exact match of the file but a version number that is one of the other files in the same directory. This could be a bug in IS2008 but the problem is that the new build (in IS2009) depends on the old build (of IS2008) to get the correct upgradetable. This means that e.g. if the (wrong) version in the previous build was greater that the on that is now in the (correctly) IS2009 build, the file will never be upgraded (if this was a key file for the folder).

Still digging into the problem :mad: .

If someone had the same issue, may be we could work together. 🙂
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The behavior you were seeing with file versions for dynamically linked files was a bug in IS 2008 and older versions of InstallShield. This issue was resolved in IS 2009 (each versioned file should have received its version for its record in the File table).

If you are seeing VAL0004 errors as a result of these version changes, you should be able to ignore them. Windows Installer compares the version of a file in the File table of the MSI package being installed to the file that already exists on a machine (it does not make a comparison using the older MSI package). If there is no existing file, the new file is installed. If there is an existing file and it is versioned, the new file will be installed if its version is higher than the existing file. Note that if the versions in your MSI package built with IS 2008 were wrong due to the bug in dynamic file linking, this would only affect the version data populated in the File table. If the files from this package were installed, their versions will still be accurate.
0 Kudos
Eric_Vanlaeken
Level 4

Dear Josh,

Thank you for your reply but I have still a problem with the Val0004 errors that I'm seeing and that are no errors at all. I have some 10 previous releases now and I'm comparing all these releases against my current release to see if this latest release can update all those previous releases. In this case, I'm getting "a lot" of Val0004 errors that are no errors. My question now is: how can I descide that an errors is a "real" error and not one that was produces by the fact that the filetable in the IS2008 builds were wrong. In fact, may be I should compare my current release to a set of "tweaked" msi's from previous releases. This could be a solution for next releases too because then I will see the "real" errors that the new release could have at not the fake ones.
What is you opinion?

Thanks for the cooperation.:)
Eric
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The only way to be sure of whether the latest package's files will upgrade existing packages is to compare the set of files on a target machine with the previous packages installed to the File table information for key files of the latest package (although MSI will have the final say on what gets installed and what doesn't, so testing is the best method). If component key files have an equal or higher version than the files existing on a target machine, the components will reinstall (assuming the package does not break component rules). The InstallFiles action will make the final determination of what is installed (based on documented MSI versioning rules). Since the validators work on the assumption that what is in the MSI packages is what will be on a target machine, they can report erroneous information if this is not the case or if the MSI packages contain invalid data (such as is the case with file versions for dynamically linked files before IS 2009).

You could also manipulate the previous MSI packages to have the correct file version information, since this would more accurately reflect files on a target machine. This would provide the simplest solution.
0 Kudos
Eric_Vanlaeken
Level 4

Thank you Josh for your reply.
I have tweaked all my by IS2008 generated msi's now and use these in the Validation of the IS2009 build. It's working fine 🙂 . I've still a question: I'm using the patch that I mentioned in my reply of April the 16th. Without it the build will create new enties in the hash table compared with the previous builds. Is there a "official" patch to apply to my installation or not. I've installed IS2009 SP2 now.
Thank you in advance for your response.

Eric
0 Kudos