我的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,但仍然没有答案。
此致 教长
答案 0 :(得分:2)
使用Regasm / codebase选项作为Hans Passant说