我已经使用Builder NE将使用R2013a的MATLAB函数编译成.NET dll。
我可以引用dll并从C#Console应用程序成功调用该函数。
但是,通过Azure Cloud Service项目以辅助角色运行时,相同的代码失败。应用程序只是静默崩溃,并停止在初始化DLL中的类的行调试。 Debug Output窗口中有此消息:
“程序'[8620] WaWorkerHost.exe:Managed(v4.0.30319)'已退出,代码为-529697949(0xe06d7363)'Microsoft C ++ Exception'。”
我在项目属性中尝试过几件事: 将Platform目标设置为x64; 未选中“启用Visual Studio托管过程”
在我的开发计算机上的Azure模拟器中运行,以及在Cloud Service上部署到Azure辅助角色时,它都失败了。然而,当我执行一个通过Process.Start调用相同dll的控制台应用程序时,它成功调用了MATLAB / MCR / .Net dll。 (我有一个无声安装MATLAB MCR的启动任务)