cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
cohamilt
Level 2

warning -4354: The build was unable to extract COM information from the file ""

Jump to solution

I had an issue on a build machine that required me to update/reinstall installshield 2018 r2. (Installshield was inaccurately quarantined by my antivirus). After the update I built the install file and now when the application installs it fails to load a few dependencies. My ism file is under source control and nothing has changed in the last two years however now there are 2 ocx's that fail to have their COM data extracted. I receive the following warning " ISDEV : warning -4354: The build was unable to extract COM information from the file C:\Dev2005\Install\Install Files\Edt32x30.ocx in component Edt32x30.ocx. Please ensure that the file is self-registering and verify that the self-registration process does not fail."

The ocx(s) are Shared and Extract COM at build time and they DO NOT self register. 

Before the issue we had the builds were successful with the following messages: 

New ProgId fpBoolean.fpBoolean dynamically acquired for component Edt32x30.ocx
New ProgId fpBoolean.fpBoolean.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpCurrency.fpCurrency dynamically acquired for component Edt32x30.ocx
New ProgId fpCurrency.fpCurrency.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpDateTime.fpDateTime dynamically acquired for component Edt32x30.ocx
New ProgId fpDateTime.fpDateTime.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpDouble.fpDouble dynamically acquired for component Edt32x30.ocx
New ProgId fpDouble.fpDouble.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpLong.fpLong dynamically acquired for component Edt32x30.ocx
New ProgId fpLong.fpLong.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpMask.fpMask dynamically acquired for component Edt32x30.ocx
New ProgId fpMask.fpMask.3 dynamically acquired for component Edt32x30.ocx
New ProgId fpText.fpText dynamically acquired for component Edt32x30.ocx
New ProgId fpText.fpText.3 dynamically acquired for component Edt32x30.ocx

 

Labels (1)
0 Kudos
(1) Solution
banna_k
Revenera
Revenera

Hi @cohamilt,

Firstly, I am suggesting you to upgrade InstallShield to the latest version (InstallShield 2020). We made some improvement in COM extraction in the latest versions.  

InstallShield provides three different methods to extract the COM information, but at a time InstallShield extract the information based on the method configured in the registry. UseAPIRegistryHooks registry value located in HKEY_LOCAL_MACHINE\Software\InstallShield\RegSpy key (on 32-bit machines) or HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\InstallShield\RegSpy  key(on 64-bit machines) holds the method configured to extract the COM information.

Value

Description

0

COM information captured by hooking Windows Registry API, old method.

1

COM information captured through Registry redirection API

2

COM information captured through Kernel mode registry filtering; latest method introduced in InstallShield 2012.

 

Value "2" is the latest method, which is more efficient than all others. But, in some cases value can be changed to the suitable method if the default one(value "2") is not working.

InstallShield provides a utility tool named RegSpyUI to cross check the values extracted from COM component, extracted by the method specified in the registry. RegSpyUI tool is available in the InstallShield support folder(C:\Program Files (x86)\InstallShield\2019\Support), this tool can be used to verify the COM extraction done by InstallShield.

See, RegSpyUI  able to extract the COM information with the registry value 2 and then see with value "1". 

RegSpyUI is a COM extraction utility available in InstallShield, located under the <InstallShield Programs File Folder>\Support folder.

More information on RegSpyUI can be found at the below link:

https://community.flexera.com/t5/InstallShield-Knowledge-Base/Extracting-COM-Information-with-RegSpyUI-exe/ta-p/4050 

View solution in original post

(2) Replies
banna_k
Revenera
Revenera

Hi @cohamilt,

Firstly, I am suggesting you to upgrade InstallShield to the latest version (InstallShield 2020). We made some improvement in COM extraction in the latest versions.  

InstallShield provides three different methods to extract the COM information, but at a time InstallShield extract the information based on the method configured in the registry. UseAPIRegistryHooks registry value located in HKEY_LOCAL_MACHINE\Software\InstallShield\RegSpy key (on 32-bit machines) or HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\InstallShield\RegSpy  key(on 64-bit machines) holds the method configured to extract the COM information.

Value

Description

0

COM information captured by hooking Windows Registry API, old method.

1

COM information captured through Registry redirection API

2

COM information captured through Kernel mode registry filtering; latest method introduced in InstallShield 2012.

 

Value "2" is the latest method, which is more efficient than all others. But, in some cases value can be changed to the suitable method if the default one(value "2") is not working.

InstallShield provides a utility tool named RegSpyUI to cross check the values extracted from COM component, extracted by the method specified in the registry. RegSpyUI tool is available in the InstallShield support folder(C:\Program Files (x86)\InstallShield\2019\Support), this tool can be used to verify the COM extraction done by InstallShield.

See, RegSpyUI  able to extract the COM information with the registry value 2 and then see with value "1". 

RegSpyUI is a COM extraction utility available in InstallShield, located under the <InstallShield Programs File Folder>\Support folder.

More information on RegSpyUI can be found at the below link:

https://community.flexera.com/t5/InstallShield-Knowledge-Base/Extracting-COM-Information-with-RegSpyUI-exe/ta-p/4050 

@banna_k  thank you that did resolve the issue I was having. 

 

Do you have more details on how that RegSpy key being set works? I had it set to 1 it looks like so I set it to 2 and ran a build for the install and now all the ocx components my vb6 application uses has lost their component references as I suspect their registry values have been changed

0 Kudos