2011-12-14 24 views
3

我的Silverlight应用程序将有打印功能,打印模块中分离CSHARP项目创建,并调用使用此代码的模块:如何调用COM打印组件在Silverlight

m_ComPrinterContoller = AutomationFactory.CreateObject(“ComPrinter。应用”);

我的打印模块是分离的c#项目,并会创建让说,ComPrinter.dll,里面有选择默认打印机和打印每个需要打印的表格。

在开发笔记本电脑我会建立打印模块,然后我顺利运行我的应用程序,但在硬件机器错误,首先错误是编程没有注册,所以我注册我的ComPrinter.dll使用RegAsm,因为我不能使用regsvr32注册它,现在progId已注册,我的dll名称在HKCR(我运行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,但它仍然没有答案。

问候, 伊玛目

+0

在浏览器Silverlight的过程?我认为这可能是一个权限问题。我认为这是唯一可能的Silverlight 5(http://forums.silverlight.net/t/243990.aspx/1?How+To+Set+Default+Printer+in+Silverlight+) – 2011-12-14 03:41:31

+2

使用Regasm的/ codebase选项。 – 2011-12-14 04:01:04

回答

2

使用Regasm的/代码库的选择,因为汉斯帕桑特说