首页 新闻 会员 周边

c# 如何注册程序集到GAC?

0
悬赏园豆:5 [已解决问题] 解决于 2013-12-25 16:53

我用C#winform基于.netframework4.0写了一个程序,需要部署在一台windowsXpsp2的机器上,已经在xp上安装了单独的.netframework4.0,程序可以打开,但有一个程序集Microsoft.mshtml.dll程序无法找到,所以报错,这个怎么解决呢?

 

首先说下,我并没有打包程序,只是把debug目录下的所有东西拷贝过去了,我也想弄清楚中间的步骤和依赖关系。我想着是把这个Microsoft.mshtml.dll拷贝到c:\windows\assymbly下就行了,但这个目录竟然和之前的不一样,几乎没有什么程序集。拷贝了也一样提示找不到。

如图:

空明流光的主页 空明流光 | 初学一级 | 园豆:106
提问于:2013-12-25 14:45
< >
分享
最佳答案
0

将mshtml.dll复制到解决方案下,手动引用该dll,部署的时候一起拷到服务器上

收获园豆:5
jerry128 | 初学一级 |园豆:31 | 2013-12-25 15:17
其他回答(3)
0
Launcher | 园豆:45045 (高人七级) | 2013-12-25 14:55
0

在写博客从编译DotNetOpenAuth中学到的程序集强签名知识时解决过这个问题:

6. 将DotNetOpenAuth注册到GAC

6.1. 进入Developer Command Prompt for VS2012命令行

6.2. 运行gacutil命令:

gacutil /i DotNetOpenAuth.dll

6.3. 却出现错误提示:

Failure adding assembly to the cache: Strong name signature could not be verified. Was the assembly built delay-signed?

6.4. 解决方法——用sn命令忽略对强签名进行验证:

sn -Vr *,<之前创建的公钥>

6.5. 然后再运行gacutil,注册就成功了。

Assembly successfully added to the cache
dudu | 园豆:31003 (高人七级) | 2013-12-25 16:18
0

问题解决了,把相应程序集复制本地设为True就可以了。但程序好像运行混乱了,这个程序好像在win7下和xp下解析出的html源代码不一样,郁闷啊! C#的远程调试,都可以Attach到远程进程了,但一直无法命中断点,提示没有加载任何符号。我要疯了,程序集拷贝到本地都可以打到断点的,远程就无法命中了。

空明流光 | 园豆:106 (初学一级) | 2013-12-25 16:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册