日期:2014-05-17  浏览次数:20865 次

[无奈&着急]如何注册.net DLL
我的环境:
VS2005 C# XP

用C#制作了一个DLL供COM调用。本机上注册采用:
call "C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat" 
gacutil /i APP_Mht.dll 
regasm APP_Mht.dll

一切OK。

现在要安装到客户机器上,客户机器没有VS,我只好把gacutil和regasm拷贝过去,然后注册,结果如下:
DLL被添加到.net全局程序集缓冲中(GAC)
注册表中有了DLL信息--但是!缺少关键一项:CodeBase项(手工指定?可是那一长串数值我自己不会生成啊)

最后结果是程序一运行就异常。

唉,微软在代码上做了充分考虑,但在使用上貌似没怎么想啊,没有个正式的注册方法,你说这依赖VS注册算怎么回事??

盼高手能给个解决办法。






------解决方案--------------------
在你的成功调用COM的电脑上执行
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm "C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll" /regfile:myref.reg 

将第2个参数换成你的DLL的全路径,这样会生成一个注册表文件,包含了COM组件的信息,然后到其它电脑上导入此注册表文件.