繁体   English   中英

无法在64位操作系统上的VS2015中加载“ lpsolve55.dll”

[英]Unable to load “lpsolve55.dll” in VS2015 on 64-bits OS

对于我正在从事的项目,我需要解决一个数学模型。 我选择使用Microsoft.Solver.Foundation和SolverFoundation.Plugin.LpSolve插件来执行此操作。 与这些扩展名相关联的两个.dll文件似乎都可以正常工作,因为VS2015可以毫无问题地识别并引用它们,并且可以编译并运行我的程序而不会出现错误。

但是,直到我尝试实际解决优化问题为止,这需要“ lpsolve55.dll”才能起作用。 我已经下载了该dll并将其放在项目的bin / Debug文件夹中,但是由于某种原因,VS2015不能识别它。

  • 我不能仅通过从“添加引用”选项卡浏览到它来引用它。
  • 无法通过regsvr32 cmd提示应用程序(取消注册)它,因为它没有任何DLL(取消注册)入口点。
  • TlbImp.exe cmd提示应用程序无法处理它。

因此,基本上,在发现上述内容之后(尝试了最常见的Internet解决方案之后),我仍然很不满意在尝试解决优化问题时收到错误消息-

无法加载DLL'lpsolve55.dll':找不到指定的模块。 (来自HRESULT的异常:0x8007007E)

更奇怪的是,我还有另一个项目可以解决类似的问题,使用lpsolve55.dll绝对没有问题。

一些事实:

  • 我参考.NET框架4.5.2。 我将其更改为4.5和4.0,但这并没有改变。
  • 据我所知,我项目的bin / debug文件夹是相同的。
  • 我在使用Visual Studio 2015时正在开发完全更新的Windows 10 OS,64位。

因此,我的问题是你们中的某些人是否也遇到过类似的问题,以及您是否能够以某种方式解决它。

高度赞赏!

经过仔细分析,我找到了问题的答案。 坦白说,就像大多数事情一样,最后很简单。 无法识别lpsolve55.dll,因为我在Path中没有新的bin文件夹,而我在旧项目中确实有。 我简直忘记了。

但是,还需要注意的是,在将lpsolve55.dll目录添加到路径后,我仍然收到一条错误消息,告诉我没有找到可以解决我的指令的模型。 由于在我调用LPSolverDirective()时发生了错误,因此一些研究使我进入了以下页面:

http://lpsolve.sourceforge.net/5.5/MSF.htm

上一页提供了一种直接使用Microsoft.Solver.Foundation.dll来使用LPSolverPlugin访问lpsolve55.dll的完整,稳定的方法。 在遵循了涉及编辑项目的bin / Debug和bin / Release文件夹的链接中的方法之后,我立即启动了LP模型并使其运行。

故事的士气-阅读文档。 在编写整个多项目解决方案和使用自定义添加的dll方面,我是一个初学者,但是希望这可以帮助其他经历过此问题的人。 最后,我通过尝试不同的方法使其工作而学到了很多东西,所以没有浪费时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM