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
Answer Summary:
Cancel
0 Comments   [ + ] Show Comments

Comments

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
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.
Answered 06/11/2008 by: VBScab
Red Belt

Please log in to comment
2
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.
Answered 06/11/2008 by: VBScab
Red Belt

Please log in to comment
0
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
Answered 06/11/2008 by: aleks1429
Orange Belt

Please log in to comment
0
That's a loaded question. Everyone has their favorite but the features are pretty much the same.

If you found VBScab's post helpful, rate it please! [:)]
Answered 06/11/2008 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
I downloaded an InstallShield Trial Version to play with. I am building an ActiveX control msi package, is there an article or tutorial i can use to create this installation package in InstallShield?

Thanks
Answered 06/11/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Just build the MSI project by hand in Installshield and the COM information will be extracted and populated to the registry tables at build time.

New > Basic MSI Project

A Wizard will load that steps through everything for you.
Answered 06/11/2008 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
Would i use the INF file or just the DLL?
Answered 06/11/2008 by: aleks1429
Orange Belt

Please log in to comment
0
I've built the MSI package with my ActiveX control, when I run the MSI package, it installs the DLL and 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?

Thanks
Al
Answered 06/11/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Did you install the file as hidden or something? That's bizarre.
Answered 06/11/2008 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
I didn't touch any of the DLL options......any ideas?
Answered 06/11/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Check the properties of the installed file. There's nothing that Installshield could do it to make it invisible to Windows Explorer besides hide it.
Are you testing this on a clean machine?
Answered 06/11/2008 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
0
Do you know for certain where these files should be placed? Who authored this ActiveX control? Is there already an installer for it and you're trying to make an MSI out of it?
Answered 06/11/2008 by: turbokitty
Sixth Degree Black Belt

Please log in to comment
2
ORIGINAL: aleks1429
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?
Yes. 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.
Answered 06/12/2008 by: VBScab
Red Belt

Please log in to comment
0
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
Yes, I saw that. I'm having intermittent problems with a Firefox add-in called Reload which , er, doesn't. Consequently, I wasn't looking at an up-to-date view of the forum entries. Technology, eh?
Answered 06/12/2008 by: VBScab
Red Belt

Please log in to comment
1
Technology, eh?

Sounds out of my leage [:D]
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
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
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
ORIGINAL: aleks1429
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?
What 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.

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...
Answered 06/12/2008 by: VBScab
Red Belt

Please log in to comment
0
If I recall correct the version will be checked using one of the registry entries:
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)
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
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
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Was a long time since I handled a ActiveX component if I recall once again it will be added while the AX component is installed through a web site.
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
1
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.
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
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
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
when it's installed through a web browser the files will be downloaded to this location and then registered/installed through the .inf file.

I am aware of that, this is all client driven :)

Can I install the DLLs and INF file through the MSI and make it look like it was a CAB?


Thanks
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
1
Have a look at: RunDLL32 and INF Files http://www.dx21.com/SCRIPTING/RUNDLL32/INF.ASP
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
When I run rundll32.exe i get Missing entry: InstallHinfSection.

I setup the command line correctly, not sure why it is complaining...any thought?
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
So what exact command line did you use?
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
rundll32.exe ActiveX.dll, InstallHinfSection, DefaultInstall, 132, "C:\Windows\Downloaded Program Files\ActiveX.INF"

I also tried

rundll32.exe ActiveX.dll, InstallHinfSection DefaultInstall 132 "C:\Windows\Downloaded Program Files\ActiveX.INF"
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Try
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 "C:\Windows\Downloaded Program Files\ActiveX.INF"
or
RUNDLL32.EXE SETUPAPI.DLL,DefaultInstall 132 "C:\Windows\Downloaded Program Files\ActiveX.INF"
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
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"
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
So it there a [DefaultInstall] section in the .inf file?
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
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
Answered 06/12/2008 by: aleks1429
Orange Belt

Please log in to comment
0
Looks like this was taken directly from the web site.

Try adding
[DefaultInstall]
RegisterOCXs=Register.ActiveX

[Register.ActiveX]
"%10%\Downloaded Program Files\ActiveX.dll"
Answered 06/12/2008 by: AngelD
Red Belt

Please log in to comment
0
AngelD....

The following post with Distribution Units helped me get the AX control to show up. However, when i validate the control in IE. It says the object is Damaged....any ideas?

Thanks
Al
Answered 06/16/2008 by: aleks1429
Orange Belt

Please log in to comment
0
How did you "validate the control in IE"?
Can you give us the details of the error message you get.
Answered 06/16/2008 by: AngelD
Red Belt

Please log in to comment
0
Thanks for all of your help. I got it resolved, my install paths were not in the WindowsFolder\Downloaded Program Files.....

do you know of a way to surpress or bypass the dialog windows during install....making it a OneClick install (no windows and not command line)?

Thanks
Answered 06/17/2008 by: aleks1429
Orange Belt

Please log in to comment
0
do you know of a way to surpress or bypass the dialog windows during install
Prevent the dialogs from being executed by either add a false condition to them or remove them from the InstallUISequence table.
Answered 06/17/2008 by: AngelD
Red Belt

Please log in to comment
0
Thank you
Answered 06/17/2008 by: aleks1429
Orange Belt

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