代码之家  ›  专栏  ›  技术社区  ›  Mark

在中使用欧姆龙库。NET Core 2.0

  •  0
  • Mark  · 技术社区  · 6 年前

    我正在尝试在ASP中使用欧姆龙库(即Compolet)。NET Core 2.0应用程序。我为这些类添加了程序集引用,但在运行时,它们试图定位 System.Windows.Forms 程序集-显然在ASP中不可用。净核心。

    准确误差为:

    FileNotFoundException:无法加载文件或程序集的系统。窗户。表单,版本=2.0.0.0,文化=中性,公钥令牌=b77a5c561934e096'。欧姆龙。Compolet。CIP。CIPPIcCompolet。。ctor()

    我猜“.ctor()”是“构造函数”。事实上,当我尝试创建新对象时会发生这种情况:

    NJCompolet nj = new NJCompolet()
    {
        LocalPort = 2,
        PeerAddress = "192.168.2.10",
    };
    

    我试图添加对“System.Windows.Forms.dll”的引用,但它说:

    BadImageFormatException:无法加载文件或程序集的系统。窗户。表单,版本=2.0.0.0,文化=中性,公钥令牌=b77a5c561934e089'。不应加载引用程序集以执行。它们只能在仅反射加载程序上下文中加载。(HRESULT异常:0x8013058)

    我也试图使用反射唯一的方式,但再次说,这种模式在这个框架中是不受支持的。

    我知道我可以创建一个单独的窗口。表单项目只是为了实例化库,但是我必须设置一个IPC通道来与我的主ASP项目交换数据。如果可能的话,我会尽量避免这种情况。

    还有什么我应该试试的吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   tj-cappelletti    6 年前

    你的问题是你试图添加一个 .NET 2.0框架 DLL到 .NET Core 2.0 项目这些DLL利用两个不同的运行时环境,这意味着它们彼此不兼容。您需要将web应用程序切换到支持加载2.0框架DLL的其他运行时,如ASP。NET 3.5框架项目。