Wednesday, January 31, 2007 3:17 PM
I have a VB.NET 2003 application that uses the Webbrowser control.
When I install my application, I am now getting the following error (since installing IE7):
Error 1904.Module C:\Windows\system32\ieframe.dll failed to register. HRESULT -2147220473. Contact your support personnel.
Despite the error I can still use my application. Obviously though, I can't have errors like this occurring for our customers.
Reza Nourai - MSFT said "One of the changes in IE7 included seperating shell and IE code out of Shdocvw.dll. The new IE-only library is IEFrame.dll..."
Can anyone explain to me why the "failed to register" error is occurring and what is the best solution? Uninstall IE7?
Thursday, February 01, 2007 6:30 AM
In .NET Framework, you don't need to register a dll file in the system registry. The XCopy technology can help you to deplyment the project convieniently. There are many kinds of problems that can cause "failed to register" error. You'd beeter pay more attention to the version of the dll file, such as the minor version number, build number, and sub-build number. I guess the failure is caused by the version conflict when loading this dll file.
According to your problem, I suggest you to firstly register the Shdocvw.dll again like this: regsvr32 C:\WINDOWS\system32\shdocvw.dll. I found a reply to such kind of question like this: If you open your project and let it error. Once it is finished loading go to the componets in your project and browse go to c:\windows\system32\shdocvw.dll and map it. Save your project you will be good to go. However, you will need to do this for each program you have the internet controls in.
Another way, I found a website that provide the ieframe.dll to download. Just have a try to download this file with the exact version for this file. The website is as follows:
Hope my reply can help you.
Friday, February 02, 2007 4:15 AM
Thanks for your notes Bruno.
Interestingly, when I revert to using InstallShield Express 4, I don't have this problem, the problem is only when using InstallShield 11. Both versions are on different machines both running IE7 - so figure that??? Guess I'll stick with IS4 for the time being and report it on the InstallShield support website.
The story was, in InstallShield Express 11 (IS11) I am not explicitly trying to register ieframe.dll. Because Visual Studio 2003 does not include the WebBrowser control (it is only included with VS 2005), I have to use the old WebBrowser COM component. Then, we use IS11 to package our VB.NET 2003 project into a setup package. InstallShield automatically takes care of all the dependancies on dll files and installs or registers them for me. The new Internet Explorer 7 (which I have installed - somewhat foolishly obviously) includes the new ieframe.dll file. InstallShield tries to register this file because it is now somehow involved with IE's WebBrowser COM component.
As yet I haven't tried your suggestion, when I do, I will report back.
Anyway, using InstallShield 4 instead of InstallShield 11 solves the problem for now! ...Now to check if it still works on a computer running IE6.
Saturday, February 23, 2008 11:11 PM
I also am using the old web control in a VS 2003 application and have thousands of customers who download my software.
You need the ieframe.dll, but after you've installed IE7 you will get that error.
The solution is to change the installers instructions for ieframe.dll so that it DOES NOT register the DLL. Just make sure it's 'copied' to the file that your ".exe" is running in.
I am using the VS 2003's built in installer and all you have to do is change the "Register" flag in the installer that is associated with the ieframe.dll to "vsdrfDoNotRegister" and the problem will be solved.
Thursday, July 03, 2008 7:15 AMHi Phil,
I have a toolbar for IE which is built on vc++2003.Even i got "ieframe.dll failed to register" error while installing this toolbar,I got this error after installing IE7 before it was working fine.(i am using windows installer for this project)
I googled and read your discussion and changed the registry property from "vsdrfComSelfRegister" to "vsdrfdonotregister" and it is working fine.But i still dont understand what is the difference between these two settings and why we need to exclude "ieframe.dll" from project dependency?
Since i am new to .net platform your suggesion would be very helpfull for me.
Thanks in advance.
Monday, December 21, 2009 12:05 PMHello phil,
Re-Registering shdocvw.dll resolved the problem.