arcadiaray

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  15 随笔 :: 0 文章 :: 26 评论 :: 0 引用

    这几天一直在用 WebBrowser 控件做“自动登录”指定网站的一个小功能,但在打包时出现了问题,Microsoft.mshtmal.dll 无法打入安装包,但 .NET Framework 2.0 又没有把这个 dll 安装到程序集的全局缓存。因此,就出现在装有 VS2005 的机器上程序运行正常,但安装到其他计算机上时出现找不到程序集的情况。这是因为在安装 VS2005 时,VS2005 安装程序会将这个 dll 安装到程序据全局缓存,打包时就不会再将该 dll 打到安装包中了。

    解决的方法其实很简单,因为 Microsoft.mshtmal.dll 这个 dll 是从 system32 文件夹下的 mshtml.tlb(COM 类型库文件)中导出的,因此我们只需要用 VS2005 自带的 TlbImp.exe COM 类型库导出工具将这个 tlb 文件再导一遍就可以了。我使用下面的脚本进行导出:

    tlbimp mshtml.tlb /out:mshtml.dll

    最后得到一个 mshtml.dll 程序集文件,将我们项目中引用的 Microsoft.mshtmal.dll 替换为 mshtml.dll,再打包时这个 dll 就可以被添加到安装项目中了。

 

posted on 2009-04-08 15:56 幸福延长线 阅读(...) 评论(...) 编辑 收藏