I'm stuck using the basic functionality (relative to AdminStudio) of InstEd and am having trouble modifying an existing shortcut in a vendor MSI (inside an MST of course). When I modify the shortcut to install to a different location (all users desktop instead of user desktop), the icon breaks. If I look on MSDN at the Shortcut table, it tells me I need to point the Icon field to the external key from the Icon table. If I look at the details for the Icon table, it tells me I need to create a binary file which will hold the icons. If I try to modify or create a new binary in the _Streams table, it looks like I'm supposed to point to the actual file that holds the icons (the main.exe in this case). When I do this, it actually saves the new binary over the top of the main.exe file.

I think I've worked out all the relationships that I need to use (feel free to correct me if I'm wrong), but I'm at a loss on how to create the binary file (and what to do with it once I've created it).

TIA
Brett
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

1
Icons are stored in the Binary table, not the _Streams table.

Good work so far!
Answered 08/04/2011 by: VBScab
Red Belt

Please log in to comment
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Thanks VBScab, I was hoping you'd take up the challenge of educating me :) . I thought one of the other post I saw here said that it could be in either _streams or binary table, but rereading it you're right, it's binary or icon tables. OK, so I've re-tried the icon table, but without luck and the binary table doesn't seem to hold any rows that seem to relate to the other shortcut icons.

In InstEd, I've gone into the Icon table. I click on the Data column for the row for the icon that used to work (not sure why it broke just because I change it's install location) and click on the "..." button to browse to the file that holds the icon files ... the application.exe. I can then click on the <- button to load the icons and save the MST. If I then run the installer, I don't get an icon. If instead I click the -> button to save the icons rather than loading it, InstEd over rights the selected file (the application.exe) changing the size to 40kB. Again, if I install it, I still don't get an icon.

So it seems like I'm looking at the correct locations; I'm guessing I'm just using InstEd incorrectly. Can you point me to what I'm doing wrong?

Thanks again for your help.
Brett
Answered 08/07/2011 by: brettski
Purple Belt

Please log in to comment
2
Sorry, I should have clarified. Icons which are not contained in an EXE or DLL installed by the package are stored in the Binary table. The Icon table is used to contain icons for advertised shortcuts and OLE servers.
Answered 08/08/2011 by: VBScab
Red Belt

Please log in to comment
0
Just to confirm. If I have an icon contained in an EXE installed by the product but is used for a regular shortcut (not advertised), would they also go in the Icon table?
Answered 08/08/2011 by: brettski
Purple Belt

Please log in to comment
2
Yes Brett they will, however and if I recall correct;
If the icon is the same as in the shortcuts exe (target) then you could leave the icon table blank.
Answered 08/09/2011 by: AngelD
Red Belt

Please log in to comment
0
Thanks AngelD and VBScab for your help. I don't know that I could get an Advertised Shortcut Icon to work, but if I just Null the Icon table it works for what I need this time. For some reason it doesn't uninstall still (was hoping it was just because the icon was broken), but that's the next thing to chase down.

Thanks again for your help
Brett
Answered 08/10/2011 by: brettski
Purple Belt

Please log in to comment
Answer this question or Comment on this question for clarity