在NUnit测试期间创建Microsoft PointOfService的PosExplorer对象时发生异常

时间:2019-06-25 16:20:11

标签: c# visual-studio-2017 nunit pos-for-.net

我试图测试用C#编写的需要.NET 3.5的POS驱动程序。我将NUnit用于VS17,因为我有一个用C#编写的控制台应用程序代码,并且对该驱动程序进行了功能测试。

这很好,但是当我尝试从NUnit调用相同的方法时,会引发异常。

这是工作代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FiscalReceipt.Library;

namespace FiscalReceiptMain
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Setting [STAThread] ");
            FiscalReceipt.Library.FiscalReceipt mc = new FiscalReceipt.Library.FiscalReceipt();
            int output = mc.testFiscalReceiptClass();
            Console.WriteLine("Number of exception = {0}", output);
            System.Environment.Exit(0);
        }
    }
}

问题当然在testFiscalReceiptClass内部:

namespace FiscalReceipt.Library
{
    public class FiscalReceipt
    {
        private PosExplorer posExplorer;
        private PosCommon posCommonFP;

        // Exception counter
        public static int NumExceptions = 0;
        public FiscalReceipt()
        {
            posExplorer = null;
            posCommonFP = null;
        }

        // Method to test the original FiscalReceiptClass
        public int testFiscalReceiptClass()
        {
            try
            {
                // Console.WriteLine("Initializing PosExplorer ");
                posExplorer = new PosExplorer();
            }
            catch (Exception e)
            {
                // ...    
            }
        }
    }
}

如果我从控制台应用程序创建posExplorer对象,则没有问题,但是当我尝试调试NUnit时会引发异常:

  

{“'Microsoft.PointOfService.Management.Explorer'类型的初始化程序引发了异常。”} InnerException {“此方法显式使用.NET Framework中过时代码访问的安全策略。兼容性目的,请使用NetFx40_LegacySecurityPolicy配置选项。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=155570。“} System.Exception {System.NotSupportedException}

enter image description here

Nunit似乎是与我的DLL不兼容的64位库。我花了超过24个工作小时来尝试许多解决方案,但现在我被锁定了。

建议?

0 个答案:

没有答案