我用C#winform基于.netframework4.0写了一个程序,需要部署在一台windowsXpsp2的机器上,已经在xp上安装了单独的.netframework4.0,程序可以打开,但有一个程序集Microsoft.mshtml.dll程序无法找到,所以报错,这个怎么解决呢?
首先说下,我并没有打包程序,只是把debug目录下的所有东西拷贝过去了,我也想弄清楚中间的步骤和依赖关系。我想着是把这个Microsoft.mshtml.dll拷贝到c:\windows\assymbly下就行了,但这个目录竟然和之前的不一样,几乎没有什么程序集。拷贝了也一样提示找不到。
如图:
将mshtml.dll复制到解决方案下,手动引用该dll,部署的时候一起拷到服务器上
在写博客从编译DotNetOpenAuth中学到的程序集强签名知识时解决过这个问题:
6. 将DotNetOpenAuth注册到GAC
6.1. 进入Developer Command Prompt for VS2012命令行
6.2. 运行gacutil命令:
6.3. 却出现错误提示:
6.4. 解决方法——用sn命令忽略对强签名进行验证:
6.5. 然后再运行gacutil,注册就成功了。
问题解决了,把相应程序集复制本地设为True就可以了。但程序好像运行混乱了,这个程序好像在win7下和xp下解析出的html源代码不一样,郁闷啊! C#的远程调试,都可以Attach到远程进程了,但一直无法命中断点,提示没有加载任何符号。我要疯了,程序集拷贝到本地都可以打到断点的,远程就无法命中了。