3

MSF用のLPSolvePlugInを64ビットOSで動作させることができません。(asp mvc 3アプリケーションから呼び出されたホストされたac#dll内)

このための特定のバージョンはありますか?x86をターゲットとするアプリケーションを構築する必要がありますか?ソルバープラグインをソースコードからターゲットx64に再構築する必要がありますか?

私は途方に暮れていて、プラグインに関するドキュメントはあまりなく、最新のコードはMSF 2.0.7をターゲットにしているようです(私は現在3.0.1または3.0.2を持っています)

どんな助けでもいただければ幸いです。月曜日に確認し、必要に応じて情報を追加します。

ありがとう

4

3 に答える 3

3

私はついにそれを解決しました。

MSF標準3.0.264ビットを手に入れました。LPSolvePluginコード(http://www.peno.be/MSF/から)を64ビット用のlpsolve55.dllを使用して64ビットマシンでコンパイルしました(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から「.NETFramework4.0」まで動作を開始しました:-)

于 2012-11-06T02:19:04.347 に答える
1

私はあきらめる前にしばらくそれを試しました。まず、MSFのxpressエディションを使用している可能性があります。すぐに到達するいくつかの制限があります。プロまたは教育バージョンを取得する限り、頑張ってください。私ができなかった。MSFはMSから非推奨になっているため、3.0.1を購入する場所すら見つかりませんでした。私はついに、ここにある元のc++コードを呼び出すことにしました 。http://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/ C#から呼び出す方法の例がいくつかあります。もう1つの利点は、制限がないことです。UがMSF3.0.1でそれを整理できたかどうか教えてください...

于 2012-10-23T20:52:33.337 に答える