如何在Silverlight中调用COM打印组件

时间:2011-12-14 03:24:00

标签: .net silverlight dll com printing

我的silverlight应用程序具有打印功能,打印模块在单独的csharp项目中创建,并使用以下代码调用模块:

m_ComPrinterContoller = AutomationFactory.CreateObject(“ComPrinter.Application”);

我的打印模块是分开的c#项目,并且会创建ComPrinter.dll,在其中有选择默认打印机并打印每个需要打印的表格。

在开发笔记本电脑中我将构建打印模块,然后我顺利运行我的应用程序,但在硬件机器上它出错,首先错误是progId未注册,所以我使用RegAsm注册我的ComPrinter.dll,因为我无法注册它使用regsvr32,现在注册了progId,在HKCR中有我的dll名称(我运行regedit并展开HKEY_CLASSES_ROOT)。

现在它已经注册,但是有新的错误,一条对话框消息:“ComAutomation_CreateInstance”。

当我安装visualStudio并构建ComPrinter项目,然后运行我的应用程序(不是来自visual studio,而是直接来自应用程序),并且应用程序运行顺利。

.net在构建和创建.dll时做了什么?它注册.dll但与regsvr32或regAsm不同。或者任何人都遇到过这种情况?如何注册.Net dll COM并从silverlight应用程序调用它,并在开发计算机中运行它

有类似的链接提出同样的问题:http://support.leadtools.com/CS/forums/35174/PrintPost.aspx,但仍然没有答案。

此致 教长

1 个答案:

答案 0 :(得分:2)

使用Regasm / codebase选项作为Hans Passant说