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,若有则认为已经注册。这种方式也不是很可靠。