Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MSHTML DLL on Windows 10

I have a C# solution that makes use of Smith Html Editor (I'm developing on the main project which uses this, so I don't know much about this library), which makes a reference to MSHTML. This worked fine until my upgrade to Windows 10 and it can't find MSHTML anymore. I can directly reference the DLL on the GAC folder, and it stops complaining and thus builds, but it's getting some runtime errors related to the editor not instantiating.

After a little research, it turns out that MSHTML is phased out of Windows 10 as it now uses EdgeHTML. Does anyone have any idea how I can go around this?

The solution still works for Windows 7.

like image 272
Tyress Avatar asked Aug 06 '15 10:08

Tyress


3 Answers

I just created a blog post on this issue. The problem is that the Microsoft.mshtml.dll assembly in the Global Assembly Cache becomes unregistered from ActiveX during the upgrade process. To fix this issue, it is necessary to run "regasm" on the assembly:

  1. Open an instance of "Developer Command Prompt for VS2013" (or whatever version of Visual Studio you happen to be using). Run it as Administrator by right-clicking the icon and selecting, "Run as Administrator."
  2. Navigate to "C:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a." It is possible your path will vary. To verify, go to "C:\Windows\assembly\GAC\Microsoft.mshtml" and type "dir."
  3. Once you are in the correct path, type regasm Microsoft.mshtml.dll
like image 59
user1233749 Avatar answered Oct 31 '22 14:10

user1233749


Great solution Aron!

In my case it was:

CD C:\Program Files (x86) [Enter]
CD Microsoft Visual Studio\2019 [Enter]
CD Community\Common7\IDE\PublicAssemblies [Enter]
gacutil -i Microsoft.mshtml.dll [Enter]
exit

(I wrote these on seperate lines since word-wrap made it confusing to read).

like image 36
Chris Raisin Avatar answered Oct 31 '22 12:10

Chris Raisin


I had the exact same problem. Adding the c:\windows\system32\mshtml.tlb worked. Note it's NOT the dll, but the tlb. Thank you so much for asking this question and thank you Hans, for the answer :)

like image 7
Flemming Bonde Kentved Avatar answered Oct 31 '22 14:10

Flemming Bonde Kentved