building MSI package CABs
I am provided with few cab files that need to be deployed on a client machine.
I've been asked to make an MSI package that will install these files.
I am using Visual Studio to build the MSI install.
How do I build the MSI package so that the CABs are installed during the installation process?
Or do I need to extract the ActiveX controls from the CAB and add them into the MSI install?
Thank you
Al
I've been asked to make an MSI package that will install these files.
I am using Visual Studio to build the MSI install.
How do I build the MSI package so that the CABs are installed during the installation process?
Or do I need to extract the ActiveX controls from the CAB and add them into the MSI install?
Thank you
Al
0 Comments
[ + ] Show comments
Answers (38)
Answer Summary:
Please log in to answer
Posted by:
anonymous_9363
16 years ago
Answering today's other CAB question, I came across this http://msdn.microsoft.com/en-us/library/aa751974(VS.85).aspx which may be of interest. Note that the method outlined therein doesn't give you an MSI package, though.
Posted by:
anonymous_9363
16 years ago
ORIGINAL: aleks1429Yes. It's MS's way of nannying users. Why would you want to see one of its precious files? If you look at the folder icon for 'Downloaded Program Files' you'll see it has a (possibly very faint) Internet Explorer icon. This indicates that it's yet another of Windows' "special" folders. However, MS being MS, they could evidently not be bothered to cloak the folder and its content from a command-propmt view so, if you want to reassure yourself that your file made it, just start an instance of CMD.EXE, CD to "%SystemRoot%\Downloaded Program Files" and do a DIR.
i can see it via command line in C:\WINDOWS\Downloaded Program Files, but I can't view it from Windows Explorer.
Does anyone know why this is happening?
Posted by:
AngelD
16 years ago
The ActiveX control must show up in the C:\Windows\Downloaded Program Files
You know that you don't have to install the ActiveX component under this location as you can put it where ever you like.
It's when it's installed through a web browser the files will be downloaded to this location and then registered/installed through the .inf file.
must show up in the IE, under Internet Options>Programs>Manage Add-ons
It will if you do everything correct.
You know that you don't have to install the ActiveX component under this location as you can put it where ever you like.
It's when it's installed through a web browser the files will be downloaded to this location and then registered/installed through the .inf file.
must show up in the IE, under Internet Options>Programs>Manage Add-ons
It will if you do everything correct.
Posted by:
AngelD
16 years ago
Have a look at: RunDLL32 and INF Files http://www.dx21.com/SCRIPTING/RUNDLL32/INF.ASP
Posted by:
anonymous_9363
16 years ago
You *could* just drop the CABs on to the workstation but if they contain ActiveX controls, how are they then going to get installed? They need to be copied to the correct destination (presumably '%SystemRoot%\Downloaded Program Files') and registered.
My advice would be to build a proper installer which immediately discounts VS, as you'll need to extract the COM information from the controls (in order to have the installer register that information) which, from what I recall, is a somewhat painful exercise in VS. The two main tools (Wise and InstallShield) provide tools to do that.
My advice would be to build a proper installer which immediately discounts VS, as you'll need to extract the COM information from the controls (in order to have the installer register that information) which, from what I recall, is a somewhat painful exercise in VS. The two main tools (Wise and InstallShield) provide tools to do that.
Posted by:
aleks1429
16 years ago
I am really impressed by your responses, thank you very much. I did come across that article you mentioned on MS site, it doesn't not give me an MSI package, which is required.
I am taking your suggestion and looking at InstallShield and WISE as alternatives. Do you know which one performs this best and with ease?
Thanks
Al
I am taking your suggestion and looking at InstallShield and WISE as alternatives. Do you know which one performs this best and with ease?
Thanks
Al
Posted by:
turbokitty
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
turbokitty
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
turbokitty
16 years ago
Posted by:
turbokitty
16 years ago
Posted by:
AngelD
16 years ago
Ian,
Already been answered in Simon's other thread
http://itninja.com/question/activex-msi-install-not-showing-up-in-the-c:\windows\downloaded-program-files
Cheers!
Already been answered in Simon's other thread
http://itninja.com/question/activex-msi-install-not-showing-up-in-the-c:\windows\downloaded-program-files
Cheers!
Posted by:
anonymous_9363
16 years ago
Posted by:
aleks1429
16 years ago
This client has a testing team that thoroughly tests each client active x control to see what version is installed.
Initially, the ActiveX control was packaged in CAB file and pulled down from a specific site, but after some client security tightening, they decided to push this out with domain script as MSI package to all client machines.
The requirement is to build an MSI, I extracted the required files from the CAB and dropped them into an Install Shield project.
The ActiveX control must show up in the C:\Windows\Downloaded Program Files and must show up in the IE, under Internet Options>Programs>Manage Add-ons so that testers can validate the correct version of ActiveX control on the system. This is really driven by the client! Client is using IE 6, I am using a clean machine. Since I am installing with Windows Installer, I use the Uninstall function every time, my assumption is that it is a clean uninstall.
The suggested solution by AngelD (http://itninja.com/question/activex-msi-install-not-showing-up-in-the-c:\windows\downloaded-program-files, can not be used because it hashes out other controls that are in the C:\WINDOWS\Downloaded Program Files folder. And the Controls are not showing pu
Can anyone help me with this packaging issue?
Thanks,Al
Initially, the ActiveX control was packaged in CAB file and pulled down from a specific site, but after some client security tightening, they decided to push this out with domain script as MSI package to all client machines.
The requirement is to build an MSI, I extracted the required files from the CAB and dropped them into an Install Shield project.
The ActiveX control must show up in the C:\Windows\Downloaded Program Files and must show up in the IE, under Internet Options>Programs>Manage Add-ons so that testers can validate the correct version of ActiveX control on the system. This is really driven by the client! Client is using IE 6, I am using a clean machine. Since I am installing with Windows Installer, I use the Uninstall function every time, my assumption is that it is a clean uninstall.
The suggested solution by AngelD (http://itninja.com/question/activex-msi-install-not-showing-up-in-the-c:\windows\downloaded-program-files, can not be used because it hashes out other controls that are in the C:\WINDOWS\Downloaded Program Files folder. And the Controls are not showing pu
Can anyone help me with this packaging issue?
Thanks,Al
Posted by:
anonymous_9363
16 years ago
ORIGINAL: aleks1429What issue? That the client doesn't understand how Windows works and that it WILL obscure certain folders from view? It's a simple education exercise, there is nothing wrong.
This client has a testing team that thoroughly tests each client active x control to see what version is installed.
<snip>
This is really driven by the client!
<snip>
Can anyone help me with this packaging issue?
Their "testing team" ought to be using proper tools for testing installed versions of files and not the simplistic "can I see the file and get its properties in Explorer" approach. Jeez...
Posted by:
AngelD
16 years ago
Posted by:
aleks1429
16 years ago
Guys,
So, do I need to add Registry entries into the MSI project?
HKLM\SOFTWARE\Microsoft\Code Store Database\Distribution Units\<GUID>\DownloadInformation\INF (REG_SZ)
HKLM\SOFTWARE\Microsoft\Code Store Database\Distribution Units\<GUID>\InstalledVersion\(Default) (REG_SZ)
Do I need to add an entry like this for every ActiveX control? Will that take care of this issue?
Many thanks,
Alex
So, do I need to add Registry entries into the MSI project?
HKLM\SOFTWARE\Microsoft\Code Store Database\Distribution Units\<GUID>\DownloadInformation\INF (REG_SZ)
HKLM\SOFTWARE\Microsoft\Code Store Database\Distribution Units\<GUID>\InstalledVersion\(Default) (REG_SZ)
Do I need to add an entry like this for every ActiveX control? Will that take care of this issue?
Many thanks,
Alex
Posted by:
AngelD
16 years ago
Posted by:
aleks1429
16 years ago
The client machines are lockdown so that no downloads can be preformed from the Internet. That is why they are pushing this out internally, otherwise, a CAB file with INF file would have worked perfectly resolving the issues I am having.
I guess, I am trying to do the same thing that CAB file is doing with INF. Need more help on this from someone who installed with INF file
I guess, I am trying to do the same thing that CAB file is doing with INF. Need more help on this from someone who installed with INF file
Posted by:
aleks1429
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
AngelD
16 years ago
Posted by:
aleks1429
16 years ago
I get Installation Failed error message when I run
C:\WINDOWS\Downloaded Program Files>RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection
DefaultInstall 132 "C:\Windows\Downloaded Program Files\ActiveX.INF"
I get Error in SETUPAPI.DLL Missing entry: DefaultInstall
C:\WINDOWS\Downloaded Program Files>RUNDLL32.EXE SETUPAPI.DLL,DefaultInstall 132
"C:\Windows\Downloaded Program Files\ActiveX.INF"
C:\WINDOWS\Downloaded Program Files>RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection
DefaultInstall 132 "C:\Windows\Downloaded Program Files\ActiveX.INF"
I get Error in SETUPAPI.DLL Missing entry: DefaultInstall
C:\WINDOWS\Downloaded Program Files>RUNDLL32.EXE SETUPAPI.DLL,DefaultInstall 132
"C:\Windows\Downloaded Program Files\ActiveX.INF"
Posted by:
aleks1429
16 years ago
No, here is the INF file
; Sample INF file for ActiveX.DLL
[version]
; version signature (same for both NT and Win95) do not remove
; what is the signature
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
ActiveX.dll=ActiveX.dll
[ActiveX.dll]
file-win32-x86=thiscab
clsid={09af4d5e-a7f2-4az8-a6df-a26b31880f55}
FileVersion=7,8,2,8
RegisterServer=yes
; end of INF file
; Sample INF file for ActiveX.DLL
[version]
; version signature (same for both NT and Win95) do not remove
; what is the signature
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
ActiveX.dll=ActiveX.dll
[ActiveX.dll]
file-win32-x86=thiscab
clsid={09af4d5e-a7f2-4az8-a6df-a26b31880f55}
FileVersion=7,8,2,8
RegisterServer=yes
; end of INF file
Posted by:
AngelD
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
AngelD
16 years ago
Posted by:
aleks1429
16 years ago
Posted by:
AngelD
16 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.