Добрый день. Пишу программу в Visual C# 2010 Express.
Фрагмент кода:
public void Operation1(HtmlElement targetElement)
{
object DO=targetElement.DomElement;
. . . . . . . .
}
На моём компьютере все работает нормально: переменная
DO принимает какое-то значение , например
mshtml.HTMLAnchorElementClass и далее я могу производить с ней какие-либо действия. Конфигурация моей системы:
Windows 7 Максимальная, .NET Framework 4.5, IE10.
На другом компьютере с такой-же конфигурацией программа не работала. Установил там Visual C# 2010 Express, запустил, вижу что
HtmlElement.DomElement возвращает
System.__ComObject .
Ещё один момент: На моём компьютере при подключении
References/Add reference.../COM/Microsoft HTML Object Library 4.0 , подключается
C:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll .
А на проблемном компьютере при попытке подключения этой же библиотеки система задумывается минут на 5 и подключает
d:\[Путь к моему проекту]\obj\x86\Debug\Interop.MSHTML.dll . Возможно система не видит
Microsoft.mshtml.dll . Со своего компьютера на проблемный я скопировал папку
c:\Windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\ , но результат тот-же.
У кого есть мысли, помогите пожалуйста.
Причина найдена. Необходимо чтоб на том том компьютере, где выполняется приложение необходимо не только установить microsoft.mshtml.dll в GAC, но и зарегистрировать её с помощью утилиты regasm.exe