Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Optano.建模不适用于MipCL_C#_Linear Programming - Fatal编程技术网

C# Optano.建模不适用于MipCL

C# Optano.建模不适用于MipCL,c#,linear-programming,C#,Linear Programming,我刚刚开始测试optano.modeling库,并使用以下软件包创建了一个新的控制台应用程序: Optano.建模 Optano.Modeling.Gurobi 我复制了Optano页面()中显示的默认程序,并且一切工作都完美无缺 这是节目 using System.Diagnostics; using OPTANO.Modeling.Optimization; using OPTANO.Modeling.Optimization.Enums; using OPTANO.Modeling.O

我刚刚开始测试optano.modeling库,并使用以下软件包创建了一个新的控制台应用程序:

  • Optano.建模
  • Optano.Modeling.Gurobi
我复制了Optano页面()中显示的默认程序,并且一切工作都完美无缺

这是节目

using System.Diagnostics;
using OPTANO.Modeling.Optimization;
using OPTANO.Modeling.Optimization.Enums;
using OPTANO.Modeling.Optimization.Solver.Gurobi80;

namespace optanodemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var scope = new ModelScope())
            {
                var model = new Model();
                var x = new Variable("x");
                var y = new Variable("y");
                model.AddConstraint(x + y >= 120);
                model.AddObjective(new Objective(2*x + 3*y));

                using (var solver = new GurobiSolver())
                {
                    var solution = solver.Solve(model);
                }
            }
        }
    }
}
之后,我决定将解算器(因为我现在不想支付Gurobi)更改为MipCL 1.41,代码如下:

using System.Diagnostics;
using OPTANO.Modeling.Optimization;
using OPTANO.Modeling.Optimization.Enums;
using OPTANO.Modeling.Optimization.Solver.MipCL141;

namespace optanodemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var scope = new ModelScope())
            {
                var model = new Model();
                var x = new Variable("x");
                var y = new Variable("y");
                model.AddConstraint(x + y >= 120);
                model.AddObjective(new Objective(2*x + 3*y));

                using (var solver = new MipCLSolver())
                {
                    var solution = solver.Solve(model);
                }
            }
        }
    }
}
代码可以编译,但运行时收到异常:

Unhandled Exception: System.TypeInitializationException: The type initializer for 
'OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE' threw an exception. ---> System.TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'MipCL141WrapperCpp': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_MipCL141WrapperCpp(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)
   at OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE.SWIGExceptionHelper..cctor()
   --- End of inner exception stack trace ---
   at OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE.SWIGExceptionHelper..ctor()
   at OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE..cctor()
   --- End of inner exception stack trace ---
   at OPTANO.Modeling.Optimization.Solver.MipCL141.WrapperCsharp.MipCL141WrapperCppPINVOKE.new_CMIP__SWIG_0()
   at OPTANO.Modeling.Optimization.Solver.MipCL141.MipCLSolver.BuildSolverModelAdapterSpecific(Int32 prioLevel)
   at OPTANO.Modeling.Optimization.SolverBase.BuildConfigureAndSolveOnAdapter(Int32 prioLevel, Dictionary`2 variableValues, Boolean isResolve)
   at OPTANO.Modeling.Optimization.SolverBase.SolveNonNative(Dictionary`2 variableValues, Boolean isResolve)
   at OPTANO.Modeling.Optimization.SolverBase.Solve(Model model, Dictionary`2 variableValues)
   at optanodemo.Program.Main(String[] args) in C:\Temp\test\ConsoleApp1\ConsoleApp1\Program.cs:line 21
经过5个小时的努力,我决定写在这里,看看是否有人有类似的问题。 这就是我所尝试的:

  • 我检查了我的应用程序文件夹,文件mipcl141wrapperpcpp.dll在该文件夹中
  • 我从下载了MipCL库版本1.41,并安装了几次
  • 我已将所有MipCL安装的文件复制到我的应用程序文件夹中
  • 我将应用程序构建设置为x64,而不是任何
  • 我分解了mipcl141wrapperpcpp.dll以检查任何其他可能的依赖项,我看到代码引用了mipcl.dll、VCRUNTIME140D.dll和ucrtbased.dll。我还将这些文件复制到我的应用程序文件夹中

您认为我还有什么可以尝试的吗?

Visual Studio 2017没有在windows\system32文件夹中安装文件ucrtbased.dll。它只安装文件ucrtbase.dll

我从互联网上下载了这个文件,并将其添加到应用程序文件夹中,一切都开始顺利进行