Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

File suppressed during update !


4 replies to this topic

duns

duns
  • Members
  • 4 posts

Posted 08 August 2003 - 08:44

Hi,

I'm currently experiencing a strange problem while upgrading a product :

I've a product with version 1.0.1 including a merge module including the file DAO2535.TLB.

I've an updated package (version 1.2.0) with no change to this merge module (same component id same file...) and major update for the application.

The on ly thing changed is that i've have populated the MsiHashFile table for all unversioned files (including DAO2535.TLB).

I have a machine (but this happens also on other configuration or OS) with an existing installation of the file DAO2535.TLB inside Common Files\DAO directory.

I, first, install version 1.01 of the product :
No problem at this step : the product is working well and preceding product using the DAO2535.TLB file also.

Then, i update the product to version 1.2.0 :
The file DAO2535.TLB is gone away !!! (and the product requiring it could not work anymore).

When i look inside the msi with orca : no changes are visibles : all references to the file are the same as the preceding version of the package (since there is no change on that).
I've two files inside the merge module : the DAO350.DLL and the DAO2535.TLB.
The first one is versioned and don't change and the second on is unversionned and don't change.
Registry entries are merged at build and haven't change.
All IDs related to the files and components and Features are the same in each msi package.



If i directly install version 1.2.0 of the product the file is still here and don't disappear.

So, by updating the app i lose the file and only in this case.
I've tested on Windows NT/2000 workstation with the same constatation : the file is deleted during the update.
The only thing changing between the two package is the MsiFileHash entry for the DAO2535.TLB file.

Anyone has experienced this kind of problem ?
Or anyone got an idea of how this is possible (since it's an update the file normally don't have to be removed) ?
Or anyone know a way to enforce the file (and only this one) to be still here after the update.

P.S. : i've read the thread on UNVERSIONED problems and patch here : http://forum.install...&hl=msifilehash
but with have no distribution in compressed mode and we've got ONLY one file experiencing the suppression...


Edited by duns, 08 August 2003 - 08:56.


duns

duns
  • Members
  • 4 posts

Posted 11 August 2003 - 15:19

Found that is a major problem on ISD7.X, ISD8.x experienced by nuumerous developers :
http://support.insta...ticleid=Q107649

Currently trying to find an issue since i don't want to make a 'discreet' uninstall before upgrading...

Edited by duns, 11 August 2003 - 15:20.


luke_s

luke_s
  • Full Members
  • 532 posts

Posted 12 August 2003 - 12:30

Firstly, you need to run with verbose log mode when your upgrade. This will tell you why the file is being remove.

Possible causes could be changing of the component guid, or file version problems.

I dont believe that there is a problem with IS 7 or 8, but a problem with the component being created for the second install.

Run with the log mode and post the result.

duns

duns
  • Members
  • 4 posts

Posted 12 August 2003 - 15:27

Hi, thx for your reply here is what i get in verbose mode :

The component file state :
MSI (s) (E4:C4): Doing action: InstallValidate
...
MSI (s) (E4:C4): Component: AllOtherFiles.20860B04_E5DA_438A_89CD_CFAFDD6DE02D; Installed: Absent; Request: Local; Action: Local
(the component code is the one for DAO2535.TLB file and on ly this file)
...
Action FileCopy state :
MSI (s) (E4:C4): Doing action: InstallFinalize
MSI (s) (E4:C4): Executing op: FileCopy(SourceName=DAO2535.TLB,SourceCabKey=DAO2535.TLB.20860B04_E5DA_438A_89CD_CFAFDD6DE02D,DestName=DAO2535.TLB,Attributes=8192,FileSize=73184,PerTick=32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions
=0,HashPart1=-1901145748,HashPart2=2004052652,HashPart3=1592891954,HashPart4=-1522841316,)
MSI (s) (E4:C4): File: C:\Program Files\Fichiers communs\Microsoft Shared\DAO\DAO2535.TLB; Won't Overwrite; No patch; Existing file is unversioned and unmodified - hash matches source file
...
Action TypeLib Registering state :
MSI (s) (E4:C4): Executing op: TypeLibraryRegister(,,FilePath=C:\Program Files\Fichiers communs\Microsoft Shared\DAO\DAO2535.TLB,LibID={00025E04-0000-0000-C000-000000000046},Version=196613,,Language=0,HelpPath=C:\Program Files\Fichiers communs\Microsoft S
hared\DAO\,BinaryType=0)
...
RemovesFiles :
Action 12:35:25 : RemoveFiles. Suppression des fichiers (files supression)
RemoveFiles: Fichier : DAO2535.TLB ; répertoire : C:\Program Files\Fichiers communs\Microsoft Shared\DAO\
(Here is the surprise : why removing the file after copying it and registering it ???)
Action 12:35:25 : InstallFiles. Copie des nouveaux fichiers (files copy)
Action 12:35:25 : RollbackCleanup. Suppression des fichiers de sauvegarde (temp file suppression)
RollbackCleanup: Fichier : C:\Config.Msiaac6.rbf
Fin de l'action 12:35:25 : InstallFinalize. Valeur renvoyée : 1.
Début de l'action 12:35:25 : RemoveExistingProducts.
Fin de l'action 12:35:25 : RemoveExistingProducts. Valeur renvoyée : 0.
...

I have commented some lines since there are originally in French language.
I couldn't figure what's happening... since it only give RemoveFiles and nothing else...

I tell that is the bug mentioned in the post before because when i rebuild the version with minor update specifications the file won't disappear (but i've to do a major update and not a minor).

Anyway, if you've an idea of what's happening thx in advance...

Regards.


duns

duns
  • Members
  • 4 posts

Posted 18 August 2003 - 08:33

Hi,

No more responses but i've found an issue for my problem (hope this could help someone in case of further searches on this forum).

I've suppressed Key path for the file DAO2535.TLB on component table after compilation :

The fact is that if we need to extract Com at build the file MUST come as a key file otherwise installshield produce an error at compilation...

By suppressing the value, the directory is the tested location for evaluating the existence of the component instead of the file : And it works !

Not sure if this a real bug since i don't understand why when the key path is the file at the update it's suppressed and when this is the directory it works well !?!

Thx again for help.

Regards

Denis Villechalane
-----------------------
Installer Developer
alfa informatique