?
Solved

Microsoft Installer Problem: 'failed to register MSHTML.TLB'

Posted on 2003-03-05
6
Medium Priority
?
1,303 Views
Last Modified: 2010-08-05
Details:
Using the Visual Studio Installer (MS VS 6.0 with Service Pack 5.0 installed, including the SP5 updated merge module files) I am having this consistent error when I run the installer file (project1.msi):

Error 1904:  Module C:\WINNT\SYSTEM32\MSHTML.TLB failed to register. HRESULT -2147024769

This error happens toward the end of the install process.  The web-related code of the installed program then has runtime errors.

The project includes a WebBrowser object, and also uses the Inet object to do some parsing of web documents.  It builds and runs successfully from within Visual Studio, and the .exe works fine if you just run it within the project directory.

Question:  What is wrong with my installer or project!?  Please give detailed instructions on how to correct this problem.

Thanks in advance!

0
Comment
Question by:gornhyhuy
[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
  • 3
  • 2
6 Comments
 
LVL 5

Expert Comment

by:RainUK
ID: 8074169
I assume you can't register the TLB (Type Library), you don't always have to ship & register every component, as some of them are default within the OS. All you have to do is in your Visual Sutdio Installer project is find the file MSHTML.TLB, find the property called 'Register' and set it to 0 - vsifrNone.

0
 

Author Comment

by:gornhyhuy
ID: 8074478
Thanks RainUK, but that doesn't solve the problem for someone who does need that TLB to be packaged in the installer. Presumably Microsoft includes that dll in there for a reason.

The real question is: why won't it register properly, and how can I make it register successfully?
0
 

Author Comment

by:gornhyhuy
ID: 8075807
I rebuilt the project from the ground up and it looks like the dependancy on MSHTML.TLB doesn't appear until I use WebBrowser1.Navigate

Don't know if that helps any?

Anyone?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Accepted Solution

by:
jasonwgreen earned 400 total points
ID: 8076011
You are incorrect in saying that "Presumably Microsoft includes that dll in there for a reason."  

According to the MSDN help pages regarding the VB MS Installer and their service pack updates:

"Mshtml.tlb is being included incorrectly in the setup package, and the PDW is not able to determine what dependencies there are for the file.

Mshtml.tlb does not need to be installed on target computers because it is already installed on Windows 2000 and any computers that have Internet Explorer.
 
RESOLUTION
There are two ways to resolve this problem:
You can manually deselect the Mshtml.tlb file so that it is not included in your setup package.

If you install the latest service pack for Visual Studio 6.0, the Package and Deployment Wizard does not pick up Mshtml.tlb. "

So, you should technically solve this problem by properly using the latest Service Pack, but short of that, you should manually "delete" the dependency on MSHTML.tlb inside the VS Installer program on the project properties page under Files --> Dependencies


0
 

Expert Comment

by:jasonwgreen
ID: 8076033
One more thought:
If you leave the mshtml.tlb in the installer dependencies, but just click 'continue' when it fails to register, the program should finish the install correctly.  My hunch is that the failure happens only on a machine that already has the mshtml.dll available (w2k or IE already installed). This way you can supply the TLB to people who don't have it already, and those that do will just have to suffer through the failure message.

or maybe you can have 2 installer versions available, one for non-IE people and one for the rest of us.
Good luck!
0
 

Author Comment

by:gornhyhuy
ID: 8076057
Thanks... I couldn't find that level of detail anywhere.  If only I could get my service pack install to actually work like they say it does.

I'll try the 2 installer option for now.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Suggested Courses
Course of the Month10 days, 10 hours left to enroll

765 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