[Msi2xml-users] RE: Msi2xml great tool but where does it store the files?
Brought to you by:
dgehriger
From: Daniel G. <geh...@li...> - 2002-10-28 13:14:54
|
Tobias, The error 2356 means "Couldn't locate cabinet in stream". It means that the MSI file references a CAB file, but the CAB file could not be found inside the MSI. The problem is that Orca, unlike MSI2XML does not allow you to manipulate binary streams that aren't accessible through a table. Explanation: Binary data is as binary streams in the MSI. Each stream is identified by a unique key. In your case, the CAB's key was "Install01.cab". Orca, however, does not allow you to manipulate streams directly, you have to use the MSIDB tool for this. Streams can however also be accessed as binary table record fields. Binary record fields are also stored as binary streams, but the key of the streams follow a special rule: they are made up of the name of the table containing the binary record field and the primary keys, separated by a dot ('.'). Example: say you have a table "SomeTable", which contains a primary key column "Name" and a binary field column "Data", and you populate this table with a record with Name = "SomeData.CAB", then the data in the binary field is actually stored as a binary stream under the key "SomeTable.SomeData.CAB". That is, if you name all your CABs "Cabs.Install01.cab", "Cabs.Install02.cab" and so on, you could create a table "Cabs" and access the stream through a binary field record if the key fields are set to "Install01.cab", "Install02.cab", ..., respectively. I guess, if you did that, Orca would correctly export these streams. But you don't have to do that. Just use MSIDB to readd the binary streams after exporting. Creating a "view" of the CABs through a table such as "Cabs" is good practice, though. Just as a final remark: the binary streams found under _Streams in MSI2XML are all streams that cannot be accessed through a table. As soon as you create a table that allows access to a binary stream, MSI2XML will export the data right in that table and won't re-export it again in the _Streams table. Regards, Daniel > -----Original Message----- > From: Tobias Eriksson [mailto:tob...@co...] > Sent: lundi, 28. octobre 2002 13:04 > To: Daniel Gehriger > Subject: RE: Msi2xml great tool but where does it store the files? > > > Hi > The wieredest thing happened, I generated the MSI with VSI, > then opened it up in ORCA, and then stored it again, this to > save space. Somewhere I read that when working with the MSI > in ORCA it can grow and grow and grow, and what one should do > then is save it as a new file, this helps a lot. However, now > the package seems to be corrupt, I get the error; "Internal > Error 2356: Install01.cab". > > Have you ever seen this? > > With the new smaller file, I don't have anything in the > '_Streams' table, but in the larger file (some 8-9 megs) I do. > > Regards > Tobias |