首页 文章

在.NET Core 2.0中使用Omron库

提问于
浏览
0

我正在尝试在ASP.NET Core 2.0应用程序中使用Omron库(即Compolet) . 我为这些类添加了程序集引用,但在运行时,它们尝试找到 System.Windows.Forms 程序集 - 显然在ASP.NET Core中不可用 .

确切的错误是:

FileNotFoundException:无法加载文件或程序集'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e096' . OMRON.Compolet.CIP.CIPPIcCompolet..ctor()

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

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

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

BadImageFormatException:无法加载文件或程序集'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' . 不应加载引用程序集以执行 . 它们只能在Reflection-only loader上下文中加载 . (HRESULT异常:0x80131058)

我也尝试使用仅反射方式,但再次说这个模式在此框架中不受支持 .

我知道我可以创建一个单独的Windows.Forms项目来实例化库,但是我必须设置一个IPC通道来与我的主ASP项目交换数据 . 我试图避免这种情况 - 如果可能的话 .

还有其他一些我应该尝试的吗?

1 回答

  • 1

    您的问题是您正在尝试将 .NET 2.0 Framework DLL添加到 .NET Core 2.0 项目中 . 这些DLL利用两个不同的运行时环境,这意味着它们彼此不兼容 . 您需要将Web应用程序切换到支持加载2.0 Framework DLL的不同运行时,例如ASP.NET 3.5 Framework项目 .

相关问题