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

时间:2016-07-25 22:17:27

标签: c# .net dll visual-studio-2015 lpsolve

对于我正在研究的项目,我需要解决一个数学模型。我选择使用Microsoft.Solver.Foundation和SolverFoundation.Plugin.LpSolve插件执行此操作。这些扩展的两个关联的.dll文件似乎都运行正常,因为VS2015可以正常识别和引用它们并编译并运行我的程序而没有错误。

然而,直到我尝试实际解决我的优化,需要“lpsolve55.dll”才能工作。我已下载此dll并将其放在我的项目的bin / Debug文件夹中,但由于某种原因,VS2015无法识别它。即。

  • 我无法通过从“添加参考”标签浏览到它来引用它。
  • 无法通过regsvr32 cmd-prompt应用程序(取消)注册它,因为它没有任何DLL(Un-)注册表入口点。
  • TlbImp.exe cmd-prompt应用程序无法处理它。

所以基本上,在发现上述内容之后(在尝试最常见的互联网解决方案之后),在尝试解决优化问题时,我仍然对收到错误消息感到非常不满 -

  

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

奇怪的部分也是我有另一个项目,我解决了类似的问题,使用lpsolve55.dll完全没有任何问题....

一些简单的事实:

  • 我引用了.NET framwork 4.5.2。我已将其更改为4.5以及4.0,但这并没有改变任何原因。
  • 据我所知,我项目的bin / debug文件夹是相同的。
  • 我正在使用完全更新的Windows 10操作系统,64位,同时使用visual studio 2015。

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

经过仔细分析后,我找到了问题的答案。说实话,就像大多数事情一样,最终它很简单。 lpsolve55.dll无法识别,因为我在路径中没有我的新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的初学者,但希望这有助于其他人体验相同的东西。最后,我通过简单地尝试不同的方法来学习它,因此没有浪费时间。