Solved

Build Warning 4354 - InstallShield 2013 Limited Edition

Posted on 2014-12-04
18
1,039 Views
Last Modified: 2014-12-08
I am receiving Warning 3 -4354: The build was unable to extract COM information from the file C:\Users\mkacos.ITC\Source\Workspaces\Workspace\ITC DLL\ITCClass\bin\Debug\ITCClass.dll in component C__199FB86F13E94D9B8FCFF517C045DAEE. Please ensure that the file is self-registering and verify that the self-registration process does not fail. ISEXP : warning : -4354: The build was unable to extract COM information from the file C:\Users\mkacos.ITC\Source\Workspaces\Workspace\ITC DLL\ITCClass\bin\Debug\ITCClass.dll in component C__199FB86F13E94D9B8FCFF517C045DAEE. Please ensure that the file is self-registering and verify that the self-registration process does not fail.


 The page that displays when I click on the warning message says: "The 'IsCmdBld.exe' file is the utility used by InstallShield to perform builds. In certain cases, it's possible that the Windows Operating System will not grant 'IsCmdBld.exe' the access it needs to complete certain operations of the build process. " Which, based on what we have experienced so far makes sense.

 I cannot find the "IsCmdBld.EXE" file. I have found where it should be located (Installshield System Folder) but it is not there. I did a search of my hard drive and it is not to be found. Could this be my issue? I need help on this one.

If I ignore this and install the DLL the interface is not working. For example, this DLL is used in an Access 2010 MDB application.  I cannot see the properties of the DLL.
0
Comment
Question by:mkacos
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 10
  • 8
18 Comments
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40481423
Looking at the path of your dll, it looks like this is managed .Net DLL exposed as COM object. Right?
0
 
LVL 1

Author Comment

by:mkacos
ID: 40481434
Correct.
0
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40481483
Uncheck "Extract COM information" and instead check "COM Interop".

See http://helpnet.installshield.com/isxhelp20/Content/helplibrary/IDlgFilePropertiesComNetSettings.htm for more details.
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 1

Author Comment

by:mkacos
ID: 40481534
It will not let me do that.   I can change the properties and click apply, open the properties back up and they are set back to "Extract Com Information".  See doc attached.
ExtractComIssue1.docx
0
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40482116
If Com Interop setting stays, maybe it's enough, despite the warning during build. Try if the installation works.
0
 
LVL 1

Author Comment

by:mkacos
ID: 40482771
The installation does not work.  When I try it, the properties are not exposed and if I ignore that, the results from known tests are incorrect.
0
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40482795
Open resulting msi file in Orca and check if tables Registry and Class are populated. The best if you could make separate installation with just this dll and nothing else, to isolate the problem.

Also, once the installation is deployed and the dll does not work, go and register the dll manually, by running regasm. Will it work them?
0
 
LVL 1

Author Comment

by:mkacos
ID: 40482960
I do not have ORCA.  I renamed the MSI to TXT and attached it.

I ran the manual regasm and the results did not change.

When I tried it at first, I received a message saying I had to have administrator rights.  Then I reopened a CMD prompt as administrator.  The regasm seemed to work however the properties are still not exposed.  I am a member of the domain administers group.

The warning message in VSS takes me to https://flexeracommunity.force.com/customer/articles/en_US/ERRDOC/Build-Warning-4354.  It indicates that I need to run ISCmdBLD.exe in compatibility mode.
itc.txt
0
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40483188
> I ran the manual regasm and the results did not change.

Then you should stop right there, and find the reason. The installation can't do more than regasm, so if that does not work, it means that the problem is with the dll itself.

Looking at the msi, itcclass.dll appears to have all COM information in place. I could not actually test it because your msi relies on external files to install, rather than having them packed inside the msi.

How do you know it does not work? create this vbscript:

set o = createobject("ITCCLASS.Customer")

Save it as myscript.vbs and run after the installation. Will you see error message that the object could not be created?
0
 
LVL 1

Author Comment

by:mkacos
ID: 40483430
I can already answer that:
The Object gets created and I can execute functions that are in the DLL.
However, the properties and functions are not exposed and the results from several of those functions are not correct.  These are results that have survived the test of time and produce the correct results under the previous installation.

 Dim ITCCode As ITCClass.ITCCom
 Set ITCCode = New ITCClass.ITCCom

What I mean by exposed: While coding, I can type "ITCCode."  and the public properties and functions are listed where under the new install, there are no properties or functions.
0
 
LVL 1

Author Comment

by:mkacos
ID: 40483798
Well, I have tried several things and am now getting the Active X Component can't create the object.  This is in my VB code, not VB script.
0
 
LVL 40

Accepted Solution

by:
Vadim Rapp earned 500 total points
ID: 40483815
> What I mean by exposed: While coding, I can type "ITCCode."  and the public properties and functions are listed where under the new install, there are no properties or functions.

For that to work, you need to deploy not only dll but also tlb (either generated by visual studio, or by regasm /tlb:), and add reference to the tlb to your VBA/VB6 project.
0
 
LVL 1

Author Comment

by:mkacos
ID: 40483841
I agree. You had helped me a couple of months ago to get another issue resolved.  Unfortunately, at the time, I thought everything was perfect.  Going through this exercise,  I noticed that the TLB file that was being deployed was outdated.  That did not raise it's ugly head until I had to add another property which started all of this.
0
 
LVL 40

Assisted Solution

by:Vadim Rapp
Vadim Rapp earned 500 total points
ID: 40483858
On my own experience I came to the conclusion that with .net-based com objects it's more reliable to use only late binding, i.e. no references, and everything by createobject; and accordingly use only simple parameters.

For convenience, I do use references during the development, exactly in order to have intellisense, but for the release I remove the reference, comment out Dim myobject as new mytype, uncomment dim myobject as object:set myobject=createobject("mytype").  Far less headache this way, and you don't have to deploy the tlb, which capable of creating conflicts between different versions, when you see error to the effect that the client application is expecting different version of the tlb.
0
 
LVL 1

Author Comment

by:mkacos
ID: 40483877
OK, I just did that in one section of the code and it worked (got rid of the "Active X Component can't create the object" error message.

I am putting this away for the weekend and will get back to it on Monday.  I'll let you know if the new properties work next week.
0
 
LVL 1

Author Comment

by:mkacos
ID: 40486901
I am still getting the build warning however it now looks like it does not matter anymore.

I took the TLB file that was built by VS and copied it to another folder.  Then I pointed the install project to that TLB file and built just the installation package.  

Everything works including intellisense on 64 and 32 bit machines.  

The only issue I see is on one 32 bit machine (development machine) when list the references in Access VB, it is listed twice in the reference list.  Probably something with the registry but everything works.

I am not sure which comment to mark as the solution since your last two comments pointed me to this.
0
 
LVL 40

Expert Comment

by:Vadim Rapp
ID: 40486917
I think ID: 40483815 is closest to what can be called a solution. Though you can split between the two.

Re. testing: always make sure to try it out on a clean machine. Have a set of virtual machines representing all architectures, with saved snapshots so can you quickly reset to the initial clean state; and try on each one. There's no limit to the degree of how previous installations can contaminate things - not to mention the development.
0
 
LVL 1

Author Closing Comment

by:mkacos
ID: 40486989
As usual, vadimrapp1 was incredibly helpful.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

One of the major drawbacks of deploying applications by GPO is the complete lack of any centralized reporting. After a normal deployment, there are two ways to find out if it was successful – by looking in the event log, and by looking in the log of…
Installations often have prerequisites, such as “Microsoft .Net framework is required for this product”. The usual implementation in MSI installations is system search for a particular registry setting representing the required prerequisite, followe…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question