2

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 に設定しましたが、何もしませんでした。ここで何が間違っているかについての提案は大歓迎です。

4

1 に答える 1