3

我不能让用于 MSF 的 LPSolvePlugIn 在 64 位操作系统上工作。(内部 ac# dll 托管从 asp mvc 3 应用程序调用)

有没有特定的版本?我应该构建面向 x86 的应用程序吗?我应该将求解器插件从源代码重建为目标 x64 吗?

我很茫然,关于插件的文档不多,最新的代码似乎针对 MSF 2.0.7(我目前有 3.0.1 或 3.0.2)

任何帮助,将不胜感激。我会在星期一检查并在需要时添加更多信息。

谢谢

4

3 回答 3

3

我终于解决了。

我得到了 MSF 标准 3.0.2 64 位。在 64 位机器上使用 lpsolve55.dll 为 64 位编译 LPSolvePlugin 代码(来自http://www.peno.be/MSF/ )(从http://sourceforge.net/projects/lpsolve/获得)

将 lpsolveplugin.dll 和 lpsolve55.dll 复制到 msf 的 plugins 文件夹中

在我的 web 服务的 web.config 中添加了以下内容(如果需要,可以添加到桌面应用程序的 app.config 中)

<configSections>
  <section name="MsfConfig"
         type="Microsoft.SolverFoundation.Services.MsfConfigSection, Microsoft.Solver.Foundation, Version=3.0.2.10889, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
         allowLocation="true"
         allowDefinition="Everywhere"
         allowExeDefinition="MachineToApplication"
         restartOnExternalChanges="true"
         requirePermission="true" />
</configSections>
<MsfConfig>
  <MsfPluginSolvers>
    <MsfPluginSolver name="LpSolveLP"
                   capability="LP"
                   assembly="LpSolvePlugIn.dll"
                   solverclass="SolverFoundation.Plugin.LpSolve.LpSolveSolver"
                   directiveclass="SolverFoundation.Plugin.LpSolve.LpSolveDirective"
                   parameterclass="SolverFoundation.Plugin.LpSolve.LpSolveParams" />
    <MsfPluginSolver name="LpSolveMIP"
                   capability="MILP"
                   assembly="LpSolvePlugIn.dll"
                   solverclass="SolverFoundation.Plugin.LpSolve.LpSolveSolver"
                   directiveclass="SolverFoundation.Plugin.LpSolve.LpSolveDirective"
                   parameterclass="SolverFoundation.Plugin.LpSolve.LpSolveParams" />
  </MsfPluginSolvers>
</MsfConfig>

它奏效了。

希望能帮助到你!

于 2012-11-14T13:29:12.953 回答
2

我有一个 VS 2012 Express,我在 lpsolve55.dll / LpSolvePlugIn.dll 中遇到“BadImage”错误。

然后,我与 C# 示例(http://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/上的 lp_solve_5.5.2.0_cs.net.zip )进行比较,发现我一更改项目从 4.5 到“.NET Framework 4.0”的属性/应用程序/目标网络开始工作:-)

于 2012-11-06T02:19:04.347 回答
1

在放弃之前,我尝试了一段时间。首先,您可能正在使用 MSF 的 xpress 版本。您将很快达到一些限制。至于获得专业版或教育版,祝你好运。我不能。我什至找不到购买 3.0.1 的地方,因为 MSF 已被 MS 弃用。我最终决定调用你可以在这里找到的原始 c++ 代码 http://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/ 你会找到一些关于如何从 C# 调用的例子。另一个优点是没有限制。让我知道你是否设法用 MSF 3.0.1 解决了...

于 2012-10-23T20:52:33.337 回答