Comments

Answers

0

For folders you populate the Directory table.
To add files you need to populate the File table and if the file don't have a file version you need to update the MsiFileHash table.
If the files are going to be external files you just reflect that in the File.Attribute column with the msidbFileAttributesNoncompressed attribute bit. For compressed you need to use msidbFileAttributesCompressed instead. Use MakeCab.exe to generate cabinets and don't forgett to update the Media table to reflect the new cabinet holding the new compressed files. If you want to use internal cabs then you must add the CAB file(s) into the _Streams table and from memory I think you would have to use WiStream.vbs from the Platform SDK as you cannot update the _Streams table using ORCA.

Files would also have to be conntect to a component so either associate them with existing once if that is what you want or create new components in the Component table. Components are also connected with features with you find in the FeatureComponents table.

ORIGINAL: AngelD
suggest reading up regarding this information in the help-file (MSI.CHM) or from http://msdn.microsoft.com/en-us/library/aa367449.aspx...and investing in a decent tool. Using Orca for anything except quick fixes will be torture. If your client/employer is too cheap to invest in one of the two main tools, there are shareware and freeware alternatives, of varying quality.

If the MSI is vendor-supplied, the concensus is to never, NEVER directly edit the MSI if it can be avoided. You would be advised to use a transform instead to make your changes.

Common Ian,
Sure for new guys ORCA may not be the best tool to start with but it's a whole lot of fun and instructive to use it.
By using ORCA one would need to know exactly what to edit. There exists tools and script to help on the way which can be found in the SDK.

Don't wanna start a new war (to use or not to use ORCA) but there are alot of people using it as their company may not provide them with the tools they need.

One thing to also have in mind is if the file needs to be registered such as COM/ActiveX component (DLL, OCX, EXE) you also need to add that info to the MSI/MST. In that case you need to add that info into the Registry table and/or the advertise related tables; Class, ProgId, TypeLib (and AppID for DCOM server). You could also use the SelfReg table to install the registry for you but not recommended.

Please provide any question you face regarding this and we'll try to guide you in the right direction.

Hi Anjel
thanks for response ...
we have one product which contains many files(images, .bmp,.jpeg etc..) and folders (around 5000 images ,dlls and ocxs ). now my question is sometimes we have addedd images manually and make a build its working fine but it takes more time to build the entire setup. thats why i am asking how can u add files/images/folders to msi with orca?

The link Nick provided describe how the different tables related to each other for adding file(s) to an MSI.
To understand how this is done you really need to understand how the different tables relates to each other and hos an entry for that table should be populated.

The MSI.CHM from Microsoft's platform SDK or from MSDN will provide you with vital information regarding the Windows Installer technology.