Hi

I am getting an error message,while running the .msi as " Failed to register the .ocx"

As per the Appdeploy Knowledgebase I removed the .ocx entries from the selfReg table but I want to know how safe is it?

Is there any other way to automate the self registartion of the components and not handle manually?

Please suggest.
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
as per microsoft best practises it is bad news registering dll's / ocx's via the selfreg table

you can use wisecomcapture to extract the reg entries from the dll and then create a new component and add the reg entries to that component.

or you can use a custom action to register the dll / ocx running regsvr32.exe /s
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
I would want to create the custom action on Orca as we dont have any other tool available but the problem is I have never worked on it,Could you please help me with the same?

As per the Orca Structure the columns it shows are below:

Action
Type
Source
Target

Please help me in populating the data?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
Take wisecomcapture of the .ocx file and add the registry entries to that particular component.
Answered 07/08/2009 by: mekaywe
Brown Belt

Please log in to comment
0
I have never used it either!!! is it a freeware?

Please guide me through if you can?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
Wat is the tool you are using for packaging.
Wisecomcapture is part of Wise Package Studio
Answered 07/08/2009 by: mekaywe
Brown Belt

Please log in to comment
0
We still have to purchase it but till then we were asked to either ignore the errors or if possible use Orca but we haven't used it so we are in a big fix :-(
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
For using Custom Action table using Orca,

Action - Name of CA
Type - This should contain a value, depending on how you want to execute the CA
Source - If you have any binary entry to be called in CA, please provide the same here.
Target - If CA is VBscript, copy paste the script in this location.
Answered 07/08/2009 by: mekaywe
Brown Belt

Please log in to comment
0
then you can probably go for regsvr32 to register your OCX file
Answered 07/08/2009 by: mekaywe
Brown Belt

Please log in to comment
0
the tables you need are the custom action table and the installexecutesequence table

custom action table

action type source target

CAname 34 SystemFolder regsvr32.exe /s "<path to ocx>"



Installexecutesequence table



action condition sequence

CAname Not Installed seqnence number



you will need to sequence your CA after installfinalise action

ie if installfinalise action is 6600

then CAname will be 6650

hope you are running msi with the qb /qn switch
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
Cygan,

Thanks for the help, let me try to update the tables and see if it will work for us.
We are using /qn switch for the package.

One more question, how do we know what is the action sequence number we have to assign.Are these predefined?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
As you don't seem to have any Wise packaging product then the best way would be to use another tool rather then use WiseComCapture as it is a tool that comes with Wise.

I recommend that you don't use a custom action but add the COM component registration info into the Registry table.
So to do this with ORCA you need to use another ORCA look alike table editor.
Downloading InstEd (www.instedit.com) and RegSpy (RegSpy2.zip from http://www.installsite.org/pages/en/tt_analyze.htm), they are both free.

Extract the COM component registration info into a .reg file using RegSpy.
Open the MSI or MSI+MST (depending on which you want to update) in InstEd and import the .reg file (http://www.instedit.com/importing.regfiles.html) created by RegSpy.
Answered 07/08/2009 by: AngelD
Red Belt

Please log in to comment
0
yes the numbers are pre defined
look at what value your installfinalize action has
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
"Extract the COM component registration info into a .reg file using RegSpy."

Could you please explain how? as the RunSpy.exe doesnt seem to do anything?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
ohkk..Could you please suggest any document for the same?

The Seq no. is the same what to said : 6600
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
if your intallfinalize action sequence is 6600
then enter 6650 for your CA

cheers
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
if I have to register 4 .ocx files,how do I assign the squence number or it would remain the same for all the .ocx files?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
nope the sequence numbers will not be the same

6650
6675
6687
6681

you should be ok now

any more probs let us know
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
Would the Type remain the same as 34..I guess "Yess"
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
yes type 34 and you CA names will be different
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
ORIGINAL: Star

"Extract the COM component registration info into a .reg file using RegSpy."

Could you please explain how? as the RunSpy.exe doesnt seem to do anything?

runspy.exe <path to .ocx>

place the .ocx file where it should be installed before running the command so the .reg file will point to the correct location
Answered 07/08/2009 by: AngelD
Red Belt

Please log in to comment
0
Cygan,

I tried to register the .ocx files both the way you suggested and manually but it not getting registered.
When trying to register manually it gives me an error as below" LoadLibrary("C:\Windows\System32\imgscan.ocx")failed-The specified module could not be found.
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
Hi AngelId

I tried your suggestion as well but its throwing an error instead:

This application has failed to start because OIAM400.dll was not found.Re-installing the application may fix this issue.
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
Either it cannot be registered or it has some dependencies that must be in-place before you can successfully register the .ocx.
If you load the .ocx in dependency walker it should give you which DLL/OCX it depend on.

Is this a vendor MSI or did you create it?
Answered 07/08/2009 by: AngelD
Red Belt

Please log in to comment
0
Its one of the .msi files our enterprise got created for their Internal use.
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
right click on the ocx select properties and look for the ole self register attribute
if it is not there then you cannot register the ocx/dll
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
When I right click on the .ocx files and then properties , i dont see any attribute.

How do you want me to check?
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
0
look in the version tab
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
I dont see it but checked on one of the .dll's which got registered it doesn't have it mentioned either.
Answered 07/08/2009 by: Star
Orange Senior Belt

Please log in to comment
1
register the ocx's that can be registered and the others execpt if they have any dependencies just ingore them as there is nothing else you can do
Answered 07/08/2009 by: cygan
Fifth Degree Brown Belt

Please log in to comment
0
okie....will do the same

Thanks for being patient all this while.
Answered 07/08/2009 by: Star
Orange Senior Belt

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