You could try an "administrative install". You could also try heat.exe's extraction option.
The APIs involve extracting the cabs and then using the cabinet APIs to extract the files, for the cases where the files are compressed & embedded. For external cabs, just the cabinet APIs. For non-compressed files, they are already external to the MSI. -----Original Message----- From: nagaram.c [mailto:nagara...@symphony.cc] Sent: Sunday, January 03, 2010 10:01 PM To: d...@rms.ro; 'General discussion for Windows Installer XML toolset.' Subject: Re: [WiX-users] differentiating between COM & C++ dlls from installerdatabase (.msi) Thanks Dan, is there an api that you could suggest for extracting the file from msi database? -----Original Message----- From: d...@rms.ro [mailto:d...@rms.ro] Sent: Friday, January 01, 2010 1:30 AM To: nagara...@symphony.cc; General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] differentiating between COM & C++ dlls from installerdatabase (.msi) The safest way is to extract the .dll files to a temporary directory and verify if they export the method DllRegisterServer. A COM .dll must export this method. You can use the LoadLibrary and GetProcAddress Windows API-s for this. Dan Quoting "nagaram.c" <nagara...@symphony.cc>: > Thanks once again for clarification, I think if there is any way to locate > non-COM file then that should be File table & selfReg table, like if suppose > if a particular record in File table has reference to selfReg then it is COM > component else a non-COM, but I am not really sure if the File table has any > relationship with selfReg table or not. > > - Nag > -----Original Message----- > From: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] > Sent: Tuesday, December 29, 2009 4:48 AM > To: nagara...@symphony.cc > Subject: RE: [WiX-users] differentiating between COM & C++ dlls from > installerdatabase (.msi) > > All COM, non-COM and .Net DLL files will be in the File table. > > .Net assemblies *may* be in the MSIAssembly table as well as the File > table but dont have to be. > If you install a .Net assembly into the application directory, then you > can put it in the File table only. > > -----Original Message----- > From: nagaram.c [mailto:nagara...@symphony.cc] > Sent: 29 December 2009 10:37 > To: Peter Shirtcliffe; 'General discussion for Windows Installer XML > toolset.' > Subject: RE: [WiX-users] differentiating between COM & C++ dlls from > installerdatabase (.msi) > > Hi, > > Thanks for your information. > > I have one more question. Is it true that both COM & non-COM are > maintained in Files table & where as all .NET components are maintained > under msiAssembly table > > - Nag > > -----Original Message----- > From: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] > Sent: Tuesday, December 29, 2009 4:28 AM > To: nagara...@symphony.cc; General discussion for Windows Installer XML > toolset. > Subject: RE: [WiX-users] differentiating between COM & C++ dlls from > installerdatabase (.msi) > > I presume you mean how do you differentiate between COM and non-COM DLLs > - some COM DLLs are written in C++ :) > > There is no certain way of spotting a COM DLL from the MSI alone because > it might be self-registering, registered by an external application or > be used with registry-free COM. > > If there is any COM registration information to be found in the MSI, it > could be in any of the following: > > Class table > ProgId table > Registry table > SelfReg table > TypeLib table > > There is no equivalent of the MSIAssembly table for COM. > > -----Original Message----- > From: nagaram.c [mailto:nagara...@symphony.cc] > Sent: 29 December 2009 09:59 > To: 'General discussion for Windows Installer XML toolset.' > Subject: [WiX-users] differentiating between COM & C++ dlls from > installerdatabase (.msi) > > Hi, > > > > Is there a way that I could differentiate between COM & C++ DLL by > looking into the installer database file (.msi), I know that all .NET > components are maintained in msiAssembly table but I think both COM & > C++ files are maintained under Files table, is there a way by looking > into some attributes in the table that I can know if that is of type C++ > DLL or COM component. > > > > Thanks, > > Nag > > > SDL PLC confidential, all rights reserved. > If you are not the intended recipient of this mail SDL requests and > requires that you delete it without acting upon or copying any of its > contents, and we further request that you advise us. > SDL PLC is a public limited company registered in England and Wales. > Registered number: 02675207. > Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire > SL6 7DY, UK. > > > ---------------------------------------------------------------------------- -- > This SF.Net email is sponsored by the Verizon Developer Community > Take advantage of Verizon's best-in-class app development support > A streamlined, 14 day to market process makes app distribution fast and easy > Join now and get one step closer to millions of Verizon customers > http://p.sf.net/sfu/verizon-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > ---------------------------------------------------------------------------- -- This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users