Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法

在比较早的文章中,提到使用 Microsoft.mshtml.dll 进行模拟浏览器点击的例子。

1.添加引用的问题

一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也会出现三个看似一样的项。对于开发者来说,引用其中任何一个都不会影响到正常的开发。但问题会出在软件发布之后!在客户的机子上运行时,通常会提示文件的签名不正确,无法加载。
解决的方法就是删除现在对mshtml引用。重新选择正确引用。就是选最下面那个。路径是:X:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 。把引用对话框拉大,可以看到文件的路径。

2.类型选择错误

如果问题一解决了,或者开始就选对了。可能客户机了上运行又报 System._ComObject 无法强制转换到 HtmlWIndow2Class 、HtmlDocumentClass或其它类似的错误。在开发者的机子上运行,却完全正常。这时通常我们会狂抓,完全不知是什么原因!在开发环境下用obj.toString()显示是HtmlXXXXClass在客户机上得到结果却是System._ComObject.
解决方法很简单用HtmlXXXX替换HtmlXXXXClass即可。可以通过查找替换把所有的HtmlWindow2Class,HtmlDocumentClass 等 后面的Class干掉。不过注意,别把你的 public class xxx 弄成public xxx

以上方法在Visual Studio 2008/2010上项目实战开发中总结而来。

原文地址:https://www.cnblogs.com/soundcode/p/9770410.html

时间: 2024-08-25 11:21:56

Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法的相关文章

Oracle数据库设计类型选择错误的隐患

数据类型不准确的一个隐患,下面来构造一张表存日期字段,一个存varchar2,一个存date,做一个测试.之前也写过两篇blog: 1.字段类型设计与实际业务不符引发的问题1 2.字段类型设计与实际业务不符引发的问题2 SQL> drop table test purge; SQL> create table test as select to_char(to_date('2014-01-01','yyyy-MM-dd')+rownum,'yyyymmdd') s_date, to_date(

"One or more types required to compile a dynamic expression cannot be found. Are you missing references to Microsoft.CSharp.dll and System.Core.dll?"的解决方法

#事故现场: 在一个.net 4.0 的项目中使用dynamic,示例代码如下: 1 private static void Main(string[] args) 2 { 3 dynamic obj; 4 obj = new { name = "jack" }; 5 Console.WriteLine(obj.name); 6 } 在读取obj.name时,报错: One or more types required to compile a dynamic expression c

找不到编译动态表达式的一种或多种类型。是否缺少对microsoft.CSharp.dll和System.core.dll的引用”

xlbook1.Worksheets[1]这块下面显示红色的波浪号,并有提示“找不到编译动态表达式的一种或多种类型.是否缺少对microsoft.CSharp.dll和System.core.dll的引用”. 解决办法是将引入的COM对象(miscrosoft excel 12.0 object library),属性里的嵌入互操作类型改为Fasle

未能添加对***.dll的引用问题

在机器A上运行.编译成功的程序,在B上不能正确被编译,并且添加r如 knbook.dll 时候提示如下: 未能添加对"knbook.dll"引用,请确保此文件可以访问并且是一个有效的COM组件或程序集 解决方法2个: 1.检查此dll文件是否为”只读“,修改方法,右键”属性“,若文件”属性“那里的只读勾选了,请去掉勾选. 然后重新添加引用即可 若还出现上述不能添加的问题,用下面的解决办法2 2.命令控制台下输入:regsvr32  e:\drms\web\knbook.dll(DLL文

未能添加对***.dll的引用 问题解决方法

这个不是什么新问题了,这里说一下我遇到的这个操蛋事. 转载请注明出处 http://www.cnblogs.com/zaiyuzhong/p/6236263.html 我做的和往常一样,找到SDK开发包中的dll文件copy到项目然后添加引用,报错“未能添加对xxx.dll的引用,不是一个有效的blahblahblah”,试了下列网上的解决方法,未果. 想了一下演示程序里也有dll,copy过来,报错“未找到接口地址blahblahblah”.看了一下示例代码没发现有dll文件,大惊,遂打开示例

用VS添加引用dll也会出错?你遇到过吗?

使用C#开发,我们经常引用各种类库,我们通常是在Visual Studio中引用上面单击右键,添加引用...,浏览...,选择dll,确定,但是这样做会不会有什么问题呢?当然,有人到现在为止没有碰到过问题,下面来一个实例,来说一下其中可能出现的问题.  一.搭建Demo 这里就以SQLite数据库为例吧,我们新建一个控制台项目,名字就叫做SQLiteDemo吧,然后在项目中添加Lib文件夹,放入SQLite要用的dll和xml配置文件,然后添加对System.Data.SQLite.dll的引用

无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型

错误 1 无法从程序集“c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll”中嵌入互操作类型,因为该程序集缺少“GuidAttribute”特性 c:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Web.dll AutoInternetDownloadTool 打开引用->找到指定的XXX.dll->右击属性->嵌入互操作类型->false

命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“Excel”。是否缺少程序集引用 的另一种解决方案

一直以来都是使用tfs进行源代码管理,系统部署也是由我本机生成后发布到服务器上,某一日,进行发布操作时,报了 [命名空间“Microsoft.Office.Interop”中不存在类型或命名空间名称“Excel”.是否缺少程序集引用]的错误,首先google和baidu,然后一堆balabalabala的,什么重装office,什么改注册表,什么引用dll之类,最后发现是因为web.config中 <assemblies>节中,要把office 2010的GAC写入,可能是我们团队某个人把we

C# 注册DLL至GAC 并在添加引用中使用该DLL

本文链接:https://blog.csdn.net/World3000/article/details/819835901,创建一个强签名的类库 类库属性中新建秘钥文件 或者使用工具 使用命令sn -k mykey.snk生成snk文件.生成好的文件在C:\Windows\SysWOW64路径下. 2,管理员身份运行 执行命令 完成注册DLL至GAC操作.文件存在 此时可删除项目Debuge文件夹中的该DLL,程序仍可运行[因为程序会优先使用GAC中的DLL] 3,注册表中加入Gac中的DLL