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