winforms アプリケーションに POS.NET を実装しようとしています。私がやろうとしているのは、EPSON TM-T20 レシート プリンターからレシートを印刷することです。印刷用のテスト アプリケーションを正常に作成しました。
try
{
var posExplorer = new PosExplorer();
DeviceCollection devices = posExplorer.GetDevices((DeviceCompatibilities)Enum.Parse(typeof(DeviceCompatibilities), "Opos", false));
DeviceInfo deviceInfo = devices[0];
var posCommon = (PosCommon)posExplorer.CreateInstance(deviceInfo);
Console.WriteLine("Created instance of device: " + deviceInfo.ServiceObjectName + "\r\n");
posCommon.Open();
Console.WriteLine("Opened device: " + deviceInfo.ServiceObjectName + "\r\n");
var printer = (Microsoft.PointOfService.PosPrinter)posCommon;
printer.Claim(1000);
printer.DeviceEnabled = true;
printer.PrintNormal(PrinterStation.Receipt, text + "\x1B|1lF");
printer.CutPaper(90);
printer.Release();
printer.Close();
}
catch (Exception ae)
{
Console.WriteLine(ae.Message);
}
これは、.NET 2.0 アプリケーションでは正常に機能します。しかし、コードを 4.0 プロジェクトにコピーすると、printer.Open(); で例外がスローされます。
Exception:Caught: 「メソッド Open が例外をスローしました。サービス オブジェクト インスタンスを作成できなかったか、その IDispatch インターフェイスを取得できませんでした。」(Microsoft.PointOfService.PosControlException) Microsoft.PointOfService.PosControlException がキャッチされました:「メソッド Open が例外をスローしました。サービス オブジェクト インスタンスを作成できなかったか、その IDispatch インターフェイスを取得できませんでした。」時間: 05.08.2013 23:21:17 スレッド: メイン スレッド [6284]
これは、testproject から dll をビルドし、それをメイン アプリケーションで参照した場合や、ソリューションで 2.0 を実行する別のプロジェクトに配置した場合でも発生します。ウェブサーチは、これが.NETバージョンと関係があるかもしれないということだけを思いついた.
アプリの構成で supportedRuntime を 2.0.50727 に設定しましたが、何もしませんでした。ここで何が間違っているかについての提案は大歓迎です。