我创建了一个C#dll来使用Acrobat打印PDF。这是从Microsoft Dynamics NAV调用的。当它在32位机器上运行时,它没有任何问题。当我们在64位计算机上安装它时,我们收到以下错误
无法对成员PrintToPrinter进行调用。 OLE控件或自动化服务器返回以下消息: 请求的memeber不存在,或者调用尝试设置只读属性的值。
如何在64位Windows 7计算机上运行此操作?我将其设置为目标x86,我也尝试过为x86和x64创建的安装程序,但我一直收到相同的错误消息。
这是我的代码。
[ComVisible(true), ClassInterface(ClassInterfaceType.AutoDual)]
public class CCB_PDFPrinting
{
public void PrintToPrinter(string FileName, string PrinterName)
{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.FileName = @"Acrobat.exe";
proc.StartInfo.Arguments = "/n /t " + FileName + " \"" + PrinterName + "\"";
proc.Start();
proc.WaitForExit(1000);
proc.CloseMainWindow();
proc.Close();
}
}
答案 0 :(得分:1)
即使在 64位计算机上,您也可以将进程设置为 32位进程。
这将强制它使用32位库。
使用CorFlags.exe
并设置/32bit+
标记(可能作为应用程序的构建后步骤)。