ClickOnce中实现Com组件自注册的官方教程如下:
http://msdn.microsoft.com/zh-cn/library/ms165432
但在实际使用中,不知什么原因,无法注册锐浪报表。于是自行摸索。
这里给出VB.net的自注册代码
Try
Dim GrPV As AxgrproLib.AxGRPrintViewer = New AxgrproLib.AxGRPrintViewer
Dim o As Object = GrPV.AccessibilityObject
GrPV.Dispose()
Catch ex As Exception
Shell("regsvr32 /s gregn50.dll", AppWinStyle.Hide)
End Try
原理是先试着自行创建一个com实例,若失败则进行注册。经测试效果良好。
需要注意的一点是:项目中要包含COM文件及其依赖的文件,这样发布的时候才能把该COM组件安装到客户端。
还有一种方式是查找注册表中COM组件对应的ClassID,若有则认为已经注册。这种方式也不是很可靠。
本文介绍了一种在ClickOnce部署环境下实现Com组件自注册的方法,通过VB.net代码尝试创建Com实例来判断是否需要注册,如果创建失败则调用regsvr32命令进行注册。此外,还需要确保项目包含了Com文件及其依赖文件以便于发布。
6169

被折叠的 条评论
为什么被折叠?



